我正在开发 Chrome 扩展程序。我想知道是否可以使用 Chrome 扩展程序调用键盘功能键。
谢谢,NVN。
编辑:您想模拟页面上的功能键按下还是听取用户的物理按键?如果您想以程序方式触发功能键操作,则不能。正如 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 查看器之类的沉浸式全屏应用程序),您可以使用preventDefault
onkeydown
来停止这种潜在的破坏性操作:
document.documentElement.addEventListener("keydown", function(e) {
if(e.keyCode == 112) {
// if F1 is pressed, don't open help
e.preventDefault();
}
});
要查看如何处理 Chrome 扩展程序的按键,请参阅我关于通过快捷键激活扩展程序的答案;这应该正是您其余部分所需要的。简要地: