gpt4 book ai didi

javascript - JavaScript 中鼠标点击模拟键盘按键

转载 作者:行者123 更新时间:2023-11-28 20:02:58 25 4
gpt4 key购买 nike

我遇到的情况是,在应用程序(HTML/XUL)中,某些功能键有键绑定(bind)(F5F7F9)为了与其他应用程序进行通信。

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

不要问原因,我只能说我需要保留该键绑定(bind)。

我可以将鼠标单击链接指定为按下 F 键吗?

最佳答案

jack 的回答是大部分解决方案,并在此基础上我给出了整个答案,因为对于初学者来说,修改功能乍一看并不那么容易。这是从 this thread 修改的函数:

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;
}

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

document.getElementById(element).addEventListener('click', function() {
simulateKeyPress(this, {keyCodeArg: 116});
});

Mozilla 开发者网络有关于 KeyboardEvents 的精彩文章和 initKeyEvent .

关于javascript - JavaScript 中鼠标点击模拟键盘按键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21303965/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com