【问题标题】:Assign command keyboard shortcut from popup or options从弹出窗口或选项分配命令键盘快捷键
【发布时间】:2017-07-27 09:59:28
【问题描述】:

Chrome API 是否可以让用户从扩展弹出窗口或选项页面中分配键盘快捷键?无需他们进入扩展页面,滚动到底部并打开键盘快捷菜单。

【问题讨论】:

    标签: google-chrome-extension


    【解决方案1】:

    在 Chrome 中,没有以编程方式分配快捷键的方法,但您可以在扩展弹出窗口中添加按钮或链接,以打开内置对话框。

    popup.html:

    <button id="hotkey">Assign a shortcut key</button>
    <script src="popup.js"></script>
    

    popup.js:

    document.getElementById('hotkey').onclick = () => chrome.tabs.create({
      url: 'chrome://extensions/configureCommands'
    });
    

    注意事项:

    • chrome:// 网址只能通过 chrome/WebExtensions API 方法打开,
      但不能直接通过&lt;a href="..."&gt; 链接。

      您仍然可以使用标准的&lt;a&gt; 链接和上面显示的点击侦听器;只是不要忘记阻止默认点击事件以避免控制台出错:

      document.getElementById('hotkey').onclick = event => {
        chrome.tabs.create({url: 'chrome://extensions/configureCommands'});
        event.preventDefault();
      };
      
    • 在 Opera 浏览器中,URL 是 opera://settings/configureCommands
      您可以使用navigator.userAgent字符串检测浏览器

    • 在 Firefox 中,目前无法以编程方式打开此 UI,因此您必须显示打开 about:addons 页面的说明,单击齿轮图标,然后选择“管理扩展快捷方式”。但是,Firefox 允许使用browser.commands.update 以编程方式设置热键。

    【讨论】:

    • 出于兴趣,你从哪里挖出chrome://extensions/configureCommands网址?
    • 它是几个月前在Stylus 中添加的,它是旧 Stylish 扩展的新分支。
    • 哦,它实际上在developer.chrome.com/extensions/commands#usage 的文档中“用户可以从 chrome://extensions/configureCommands 对话框手动添加更多快捷方式。”
    • 它当然适合我。但最终 URL 不同,Chrome 会将其重定向到 chrome://extensions/shortcuts
    • 他们在Chromium bug 775698 中重新添加了chrome://extensions/configureCommands 重定向。从提交消息中的“[MD Extensions]”标签看来,这是向Material Design-based Extensions page 迁移的一部分。我不确定哪个版本的 Chrome 开始支持 chrome://extensions/shortcuts URL,并且文档(如 @Xan 提到的)仍然声明 chrome://extensions/configureCommands
    猜你喜欢
    • 2021-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-06
    • 1970-01-01
    • 2023-03-19
    相关资源
    最近更新 更多