用js检测Fn键

问题描述 投票:0回答:5

你好我想知道是否可以用js捕获fn键。

我想要实现的是检测 fn + f7 按键。

这是我的代码,不是用 fn 键触发的:

document.addEventListener("keydown", onKeyDown, false);

function onKeyDown(e) {
  console.log(e);
}

更新: 我发现检测 fn + f5 在 Windows 上有效,但在我的 Linux 上无效。 是否有安装包来为 Firefox 添加媒体密钥?

javascript keypress
5个回答
8
投票

大多数 FN 键都是在固件中实现的,不会被应用程序识别。您可以使用像这样的网站来测试 javascript 可以处理什么:

http://keycode.info/


6
投票

您无法捕捉到按下

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


1
投票

试试这个,

document.addEventListener("keydown", onKeyDown, false);

function onKeyDown(e) {
 var x = e.keyCode;
 if(x==118){
  console.log('Your pressed Fn+F7');
 }
}

谢谢。


0
投票

在监听器中使用 keyUp 而不是 keyDown。因为你正在执行组合键。 并使用正常检测 if (event.key === 'F2')...


-1
投票

要查找按下的是哪个键:

var intKey=self.setInterval(onkeydown="findKey(event);",5000);
function findKey(e)
{
  console.log("keyCode for the key pressed: " + e.keyCode + "\n");
}
© www.soinside.com 2019 - 2024. All rights reserved.