我想要实现的是检测 fn + f7 按键。
这是我的代码,不是用 fn 键触发的:
document.addEventListener("keydown", onKeyDown, false);
function onKeyDown(e) {
console.log(e);
}
更新: 我发现检测 fn + f5 在 Windows 上有效,但在我的 Linux 上无效。 是否有安装包来为 Firefox 添加媒体密钥?
大多数 FN 键都是在固件中实现的,不会被应用程序识别。您可以使用像这样的网站来测试 javascript 可以处理什么:
您无法捕捉到按下
fn
键的时间。
但是,如果您按
fn+F7
,它会生成与仅按 event
不同的 F7
对象 - 考虑到该键有绑定的功能。因此,就我而言,F7 上没有绑定任何内容,因此如果我按 fn+F7
键,将不会生成任何事件。
如果我按
F3
,然后按fn+F3
,将生成以下代码:
KeyboardEvent {isTrusted: true, key: "F3", code: "F3", location: 0, ctrlKey: false, …}
KeyboardEvent {isTrusted: true, key: "AudioVolumeUp", code: "AudioVolumeUp", location: 0, ctrlKey: false, …}
希望这有帮助。
----更多信息如下----
正如我所料,
fn
键并没有真正生成任何键码。相反,在硬件级别上,当与其他一些键组合按下时,它会生成唯一的键码。
基于此问题答案的信息:https://askubuntu.com/questions/827925/remapping-the-fn-key
还有这个: https://askubuntu.com/questions/270416/how-do-fn-keys-work
试试这个,
document.addEventListener("keydown", onKeyDown, false);
function onKeyDown(e) {
var x = e.keyCode;
if(x==118){
console.log('Your pressed Fn+F7');
}
}
谢谢。
在监听器中使用 keyUp 而不是 keyDown。因为你正在执行组合键。 并使用正常检测 if (event.key === 'F2')...
要查找按下的是哪个键:
var intKey=self.setInterval(onkeydown="findKey(event);",5000);
function findKey(e)
{
console.log("keyCode for the key pressed: " + e.keyCode + "\n");
}