Google chrome 是否可以使用Chrome扩展调用键盘功能键

Google chrome 是否可以使用Chrome扩展调用键盘功能键,google-chrome,google-chrome-extension,Google Chrome,Google Chrome Extension,我正在开发Chrome扩展。我想知道是否可以使用Chrome扩展调用键盘功能键 谢谢, NVN.编辑:要模拟页面上的功能按键,还是要监听用户的物理按键?如果您想按程序触发功能键操作,则不能。正如Rob指出的,脚本化事件只会激活脚本化事件侦听器,而不会触发默认行为 为了检测功能按键,您需要将事件绑定到keyup--not到keypress,这不会触发几个不可打印的按键,如功能键和箭头键 document.documentElement.addEventListener("keyup", funct

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

谢谢,
NVN.

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

为了检测功能按键,您需要将事件绑定到
keyup
--not
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
on
keydown
来停止这种潜在的破坏性操作:

document.documentElement.addEventListener("keydown", function(e) {
    if(e.keyCode == 112) {
        // if F1 is pressed, don't open help
        e.preventDefault();
    }
});
要了解如何处理Chrome扩展的按键操作,请参阅上的我的答案;这正是你接下来所需要的。简而言之:

  • 我上面给出的代码将以一种新的方式添加到每个页面中

  • 事件处理函数在页面上的内容脚本内或在后台页面上执行某些操作


谢谢您的回答,是的,我想模拟chrome extension的功能键。扩展页面中有一个按钮,当用户点击按钮时,我想模拟实际的功能键。帮我做这个。@Nvn1509这是不可能的,原因有二:1。Chrome扩展无法访问
chrome://extension/
URL。2.脚本化的关键事件永远不能用于触发默认行为。那么,我将删除此答案。Rob,如果你愿意的话,将你的评论作为一个答案重新发布,这样它就可以被接受。是否有任何方法可以显示带有chrome扩展的浏览器的开发者工具看起来像没有。请参阅此问题的答案:“我们只允许显式的开发者工具打开。”