0

我正在开发 Chrome 扩展程序。我想知道是否可以使用 Chrome 扩展程序调用键盘功能键。

谢谢,NVN。

4

1 回答 1

1

编辑:您想模拟页面上的功能键按下还是听取用户的物理按键?如果您想以程序方式触发功能键操作,则不能。正如 Rob 所指出的,脚本事件仅激活脚本事件侦听器,不会触发默认行为。

为了检测功能键按下,您需要将您的事件绑定到keyup-- not to keypress,这不会触发几个不可打印的击键,如功能键和箭头键。

document.documentElement.addEventListener("keyup", function(e) {
    if(e.keyCode == 113) {
        // if F2 is pressed...
        // F1 is keycode 112, and it increments from there
    }
});

一些功能键已经做了一些事情(F1 打开帮助,F5 刷新等)。如果您有充分的理由阻止这种行为(例如,您正在制作一个不应该表现出正常浏览器行为的 VNC 查看器之类的沉浸式全屏应用程序),您可以使用preventDefaultonkeydown来停止这种潜在的破坏性操作:

document.documentElement.addEventListener("keydown", function(e) {
    if(e.keyCode == 112) {
        // if F1 is pressed, don't open help
        e.preventDefault();
    }
});

要查看如何处理 Chrome 扩展程序的按键,请参阅我关于通过快捷键激活扩展程序的答案;这应该正是您其余部分所需要的。简要地:

  • 我上面给出的代码放在一个内容脚本中,该脚本被添加到每个页面

  • 事件处理函数执行一些操作,或者在页面上的内容脚本中,或者通过向后台页面传递消息

于 2012-05-03T06:09:51.257 回答