鼠标点击模拟JavaScript中的键盘键

鼠标点击模拟JavaScript中的键盘键,javascript,keyboard,touch,dom-events,key-bindings,Javascript,Keyboard,Touch,Dom Events,Key Bindings,在应用程序(HTML/XUL)中,有些函数键(F5、F7和F9)有键绑定,以便与其他应用程序通信 现在我必须为同一个应用程序制作基于触摸的界面,没有键盘和高级触摸事件。所有触摸点击实际上都与鼠标点击相同,我需要有3个按钮/链接,它们的行为与F5、F7和F9键相同 不要问原因,我所能说的就是我需要保留密钥绑定 我可以指定鼠标点击链接,使其像按下F键一样吗?我想有两种方法可以做到这一点 最简单的方法是让你的F键调用一个函数,然后在捕捉鼠标事件时调用相同的函数 另一种方法是捕捉鼠标事件,并触发F键按下

在应用程序(HTML/XUL)中,有些函数键(F5、F7和F9)有键绑定,以便与其他应用程序通信

现在我必须为同一个应用程序制作基于触摸的界面,没有键盘和高级触摸事件。所有触摸点击实际上都与鼠标点击相同,我需要有3个按钮/链接,它们的行为与F5、F7和F9键相同

不要问原因,我所能说的就是我需要保留密钥绑定


我可以指定鼠标点击链接,使其像按下F键一样吗?

我想有两种方法可以做到这一点

最简单的方法是让你的F键调用一个函数,然后在捕捉鼠标事件时调用相同的函数

另一种方法是捕捉鼠标事件,并触发F键按下事件。那么这几乎就是这个问题的翻版:


我想有两种方法可以做到这一点

最简单的方法是让你的F键调用一个函数,然后在捕捉鼠标事件时调用相同的函数

另一种方法是捕捉鼠标事件,并触发F键按下事件。那么这几乎就是这个问题的翻版:


我想有两种方法可以做到这一点

最简单的方法是让你的F键调用一个函数,然后在捕捉鼠标事件时调用相同的函数

另一种方法是捕捉鼠标事件,并触发F键按下事件。那么这几乎就是这个问题的翻版:


我想有两种方法可以做到这一点

最简单的方法是让你的F键调用一个函数,然后在捕捉鼠标事件时调用相同的函数

另一种方法是捕捉鼠标事件,并触发F键按下事件。那么这几乎就是这个问题的翻版:


在Jake的答案中,大部分是解决方案,在此基础上,我给出了完整的答案,因为对于初学者来说,修改功能乍一看并不容易。 此函数由以下函数修改:

现在我们在所需的元素/事件上调用它,以便按下所需的键。第二个参数是对象,所有选项都可以更改(在我的例子中,只需要发送keyCodeArg:116来模拟F5按键)


Mozilla Developer Network有很多关于和的文章。

在Jake的回答中,这是大多数解决方案,基于这一点,我给出了完整的答案,因为对于初学者来说,修改功能乍一看并不容易。 此函数由以下函数修改:

现在我们在所需的元素/事件上调用它,以便按下所需的键。第二个参数是对象,所有选项都可以更改(在我的例子中,只需要发送keyCodeArg:116来模拟F5按键)


Mozilla Developer Network有很多关于和的文章。

在Jake的回答中,这是大多数解决方案,基于这一点,我给出了完整的答案,因为对于初学者来说,修改功能乍一看并不容易。 此函数由以下函数修改:

现在我们在所需的元素/事件上调用它,以便按下所需的键。第二个参数是对象,所有选项都可以更改(在我的例子中,只需要发送keyCodeArg:116来模拟F5按键)


Mozilla Developer Network有很多关于和的文章。

在Jake的回答中,这是大多数解决方案,基于这一点,我给出了完整的答案,因为对于初学者来说,修改功能乍一看并不容易。 此函数由以下函数修改:

现在我们在所需的元素/事件上调用它,以便按下所需的键。第二个参数是对象,所有选项都可以更改(在我的例子中,只需要发送keyCodeArg:116来模拟F5按键)


Mozilla开发者网络有很多关于和的文章。

Tnx,您已经引导我找到了答案。我不得不付出一点努力,正因为如此,我对自己的问题给出了一个准确的答案,以便将来帮助别人。Tnx,你引导我找到了答案。我不得不付出一点努力,正因为如此,我对自己的问题给出了一个准确的答案,以便将来帮助别人。Tnx,你引导我找到了答案。我不得不付出一点努力,正因为如此,我对自己的问题给出了一个准确的答案,以便将来帮助别人。Tnx,你引导我找到了答案。我不得不付出一点努力,正因为如此,我对自己的问题给出了一个确切的答案,以便将来帮助别人。
function simulateKeyPress(target, options) {
    var event = target.ownerDocument.createEvent('KeyEvents'),
        options = options || {};

    // Set your options or || default values
    var opts = {
        type: options.type                  || "keypress",
        bubbles: options.bubbles            || true,
        cancelable: options.cancelable      || true,
        viewArg: options.viewArg            || null,
        ctrlKeyArg: options.ctrlKeyArg      || false,
        altKeyArg: options.altKeyArg        || false,
        shiftKeyArg: options.shiftKeyArg    || false,
        metaKeyArg: options.metaKeyArg      || false,
        keyCodeArg: options.keyCodeArg      || 0,
        charCodeArg: options.charCodeArg    || 0
    }

    // Pass in the options
    event.initKeyEvent(
        opts.type,
        opts.bubbles,
        opts.cancelable,
        opts.viewArg,
        opts.ctrlKeyArg,
        opts.altKeyArg,
        opts.shiftKeyArg,
        opts.metaKeyArg,
        opts.keyCodeArg,
        opts.charCodeArg
    );

    // Fire the event
    target.dispatchEvent(event);
    event.stopPropagation;
}
document.getElementById(element).addEventListener('click', function() {
    simulateKeyPress(this, {keyCodeArg: 116});
});