【问题标题】:Detect Fn key with js用js检测Fn键
【发布时间】:2018-04-20 16:11:11
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

    标签: javascript keypress


    【解决方案1】:

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

    http://keycode.info/

    【讨论】:

    • 还有另一个替代方案keyjs.dev,其中包含有关不同键盘事件及其属性的更多信息。 ?
    【解决方案2】:

    您无法捕捉到fn 键被按下的时间。

    但是,如果您按 fn+F7 与单独按 F7 相比,它会生成不同的 event 对象 - 考虑到该键绑定了功能。所以在我的情况下,我在 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

    【讨论】:

      【解决方案3】:

      试试这个,

      document.addEventListener("keydown", onKeyDown, false);
      
      function onKeyDown(e) {
       var x = e.keyCode;
       if(x==118){
        console.log('Your pressed Fn+F7');
       }
      }
      

      谢谢。

      【讨论】:

        【解决方案4】:

        要查找按下了哪个键:

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

        【讨论】:

          猜你喜欢
          • 2012-01-06
          • 2021-12-21
          • 1970-01-01
          • 1970-01-01
          • 2010-12-15
          • 1970-01-01
          • 2023-03-28
          • 1970-01-01
          • 2017-11-09
          相关资源
          最近更新 更多