gpt4 book ai didi

javascript - UserScript 根据按键采取行动?

转载 作者:行者123 更新时间:2023-11-29 22:20:48 25 4
gpt4 key购买 nike

我正在努力尝试编写这个用户脚本的语法,它基本上应该遵循以下逻辑:

IF (LeftArrowKeyIsPressed) THEN doSomething;ELSE IF (RightArrowKeyIsPressed) THEN doSomethingElse;ELSE IF (any other key pressed) THEN doNothing;

有人可以帮我了解构造按键检查的代码语法吗?假设正在使用 onkeydown 事件。

最佳答案

使用 addEventListener 添加一个事件监听器,可能是到窗口。然后关闭 Event.which 值以执行您想要的操作。

这是代码。 See it in action at jsFiddle. :

/*--- Get or set the codes for the arrow keys.
Firefox gives us nice constants, Chrome does not.
*/
KeyEvent = (typeof KeyEvent === "object") ? KeyEvent : [];
const LEFT_KEY = KeyEvent.DOM_VK_LEFT || 37;
const RIGHT_KEY = KeyEvent.DOM_VK_RIGHT || 39;

window.addEventListener ("keydown", keyboardHandler, false);

function keyboardHandler (zEvent) {
var bBlockDefaultAction = false;

//--- Assume we want only the plain keys, not the modified versions.
if (zEvent.altKey || zEvent.ctrlKey || zEvent.shiftKey) {
//-- Do nothing (most user-friendly option, in most cases).
}
else {
if (zEvent.which == LEFT_KEY) {
//DO LEFT KEY ACTION HERE.
bBlockDefaultAction = true;
}
else if (zEvent.which == RIGHT_KEY) {
//DO RIGHT KEY ACTION HERE.
bBlockDefaultAction = true;
}
}

if (bBlockDefaultAction) {
zEvent.preventDefault ();
zEvent.stopPropagation ();
}
}

此代码适用于适用于用户脚本的浏览器(非 IE)。 jQuery 版本相同,只是将 addEventListener 行更改为:

$(window).keydown (keyboardHandler);

关于javascript - UserScript 根据按键采取行动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12558677/

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