我正在开发Chrome扩展程序。我想知道是否可以使用 Chrome 扩展程序调用键盘功能键。
谢谢NVN。
编辑:您想模拟页面上的功能按键还是侦听用户的物理按键? 如果要按程序触发功能键操作,则不能。 正如 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 查看器(,则可以在keydown
上使用preventDefault
来阻止该潜在的破坏性操作:
document.documentElement.addEventListener("keydown", function(e) {
if(e.keyCode == 112) {
// if F1 is pressed, don't open help
e.preventDefault();
}
});
要了解如何处理Chrome扩展程序的按键操作,请参阅我在通过快捷键激活扩展程序上的回答; 这应该正是您其余部分所需要的。 简要:
我上面给出的代码包含在添加到每个页面的内容脚本中
事件处理程序函数在页面上的内容脚本中或通过将消息传递到后台页面来执行某些操作