用js检测Fn键

时间:2018-04-20 16:11:12

标签: javascript keypress

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

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

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

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

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

更新: 我发现检测fn + f5适用于Windows但不适用于我的linux。 是否有要安装的软件包来为firefox添加媒体密钥?

4 个答案:

答案 0 :(得分:4)

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

http://keycode.info/

答案 1 :(得分:4)

按下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

答案 2 :(得分:0)

试试这个,

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

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

感谢。

答案 3 :(得分:-2)

要查找按下的键:

var intKey=self.setInterval(onkeydown="findKey(event);",5000);
function findKey(e)
{
  console.log("keyCode for the key pressed: " + e.keyCode + "\n");
}