【问题标题】:Capture Alt, Ctrl or Shift in Firefox在 Firefox 中捕获 Alt、Ctrl 或 Shift
【发布时间】:2021-03-03 17:20:33
【问题描述】:

使用 Firefox 我找不到使用 JavaScript 捕获 Alt、Ctrl 或 Shift 键的键盘事件的方法。它适用于 Chrome、Midori、SeaMonkey,但不适用于 Firefox。

最小的可重现示例:

window.onkeydown = event => console.log(event);

我按下 AltLeft 键,在 Chrome 上我得到:

KeyboardEvent {isTrusted: true, key: "Alt", code: "AltLeft"...

在 Midori 1.1.4 上:

KeyboardEvent {isTrusted: true, key: "Alt", code: "AltLeft"...

蛇怪(~旧 Mozilla)2021.02.06:

keydown Alt { target: <body>, key: "Alt", charCode: 0, keyCode: 18 }

SeaMonkey 2.53.6 (x64):

keydown Alt { target: <body>, key: "Alt", charCode: 0, keyCode: 18 }

Firefox 86.0 (x64):


...什么都没有。与 Ctrl 和 Shift 键相同。

Microsoft Windows [版本 10.0.17763.1757]

提前致谢!

PS:提及 IE 甚至不值得。 ;)

【问题讨论】:

    标签: javascript firefox keyboard-events


    【解决方案1】:

    我已经在 FireFox 86.0 中对此进行了测试,它按预期工作。

    keydown Shift { target: body.activity-stream, key: "Shift", charCode: 0, keyCode: 16 }
    
    keydown Control { target: body.activity-stream, key: "Control", charCode: 0, keyCode: 17 }
    
    keydown Alt { target: body.activity-stream, key: "Alt", charCode: 0, keyCode: 18 }
    

    请检查您的环境并提供更多信息以协助调试。

    【讨论】:

    • Microsoft Windows [版本 10.0.17763.1757]
    • 检查它不是 Firefox 中的某个插件试图阻止键盘记录。
    • 我已经在 SaveMode 中尝试过 - 没有区别。不捕获 Alt、Ctrl 和 Shift。 support.mozilla.org/en-US/kb/…
    • 确认:它是否记录其他键,但不记录 shift、alt 和 ctrl?
    • 是的。它记录除 Alt、Ctrl 和 Shift 之外的所有键。仅在 Firefox 中。
    猜你喜欢
    • 2012-04-02
    • 2021-08-09
    • 1970-01-01
    • 2014-01-09
    • 2011-02-17
    • 2015-09-20
    • 2010-10-23
    • 2010-11-23
    • 2010-11-19
    相关资源
    最近更新 更多