是否可以使用Chrome扩展程序调用键盘功能键

时间:2012-05-03 05:16:46

标签: google-chrome google-chrome-extension

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

谢谢, NVN。

1 个答案:

答案 0 :(得分:1)

编辑:您是否希望在页面上模拟功能键按下或监听来自用户的物理键按下?如果您想要在程序上触发功能键操作,则不能。正如Rob指出的那样,脚本事件只激活脚本事件监听器,并且不会触发默认行为。

为了检测功能键按下,您需要将事件绑定到keyup - 而不是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查看器,不应显示正常的浏览器行为),则可以preventDefault使用keydown停止这种潜在的破坏性行动:

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

要了解如何处理Chrome扩展程序的按键操作,请参阅Activate extension via short cut key上的答案;这应该是你需要的其余部分。简言之:

  • 我上面给出的代码放在content script中,并添加到每个页面

  • 事件处理程序函数可以在页面上的内容脚本中执行某些操作,也可以通过passing a message执行某些操作