jquery - Chrome 扩展程序中的键盘快捷键

标签 jquery jquery-plugins google-chrome-extension keyboard-shortcuts

我正在尝试为我的 Chrome 扩展程序连接键盘快捷键。我为此使用了 jQuery 插件:http://oscargodson.com/labs/jkey/ .

这是我用来测试它的代码:

$(document).ready(function() {
    function say_hello() {
       alert("hello!");
    }
    $(document).jkey('/', say_hello);
});

我现在的后台页面中有这个,但它不起作用。这种类型的代码应该放在后台页面中,还是更适合内容脚本?或者我应该把它完全放在其他地方?

最佳答案

我知道这个问题很古老,但以防万一您还没有发现,这里是您问题的最新解决方案:

Chrome 扩展程序现在有一个事件,只要在任何 Chrome 窗口中按下特定的组合键(除了单独的隐身 session ,我还没有尝试过),该事件就会触发,chrome.commands API

设置方法如下:

  1. 将“commands”键添加到您的manifest.json根目录中,并填充一个 或更多命令(在本例中为“重新启动应用程序”)。每个命令应该 指定 PC 和 Mac 所需的组合键。 (一些组合, 像 ctrl-f5 一样,受到限制,仅供引用。我也不确定描述是否正确 是可选的或必需的。)

    "commands": {
      "Restart App": {
        "suggested_key": {
          "default": "Ctrl+Shift+5",
          "mac": "Command+Shift+5"
        },
        "description": "Restart my app (Debugging)"
      }
    }
    
  2. 在background.js中,将处理程序绑定(bind)到“onCommand”事件,然后 过滤“command”,它将匹配您中声明的键 当你的组合被按下时就会显现出来:

    chrome.commands.onCommand.addListener(function (command)
    {
        if (command == "Restart App")
        {
            chrome.runtime.reload();
        };
    });
    

就是这样!

有人质疑热键的值(value),但我是它们的坚定拥护者。每次使用将鼠标/键盘模式切换为仅键盘所节省的时间可能小于 1 秒,但经过几次繁重的调试 session 后,时间就会开始增加。将上面示例中的快捷方式添加到我开发的应用程序中可能已经节省了我几个小时的时间:)

享受吧!

-马特

关于jquery - Chrome 扩展程序中的键盘快捷键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8305318/

相关文章:

javascript - Chrome 扩展程序 : callback function not getting called

javascript - CSS 水平滚动

javascript - 如何使用 JavaScript 和 jQuery 找出用户的互联网连接速度?

javascript - this.each 和 IE6-7

javascript - Chrome 扩展程序 : Uncaught SyntaxError: Unexpected token return

popup - 增加Chrome扩展程序中的最大弹出窗口宽度?

javascript - 我怎样才能在带滚动的div中制作一个固定框?

jquery - 从多个选择列表中获取 "newest"所选选项的文本

jQuery.Rule 插件如何更改现有样式?

jquery - 动态创建的可放置 div 不起作用