我正在开发Chrome扩展程序。我想知道可以使用Chrome Extensions调用键盘功能键。
谢谢, NVN。
答案 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执行某些操作