【发布时间】:2017-07-27 09:59:28
【问题描述】:
Chrome API 是否可以让用户从扩展弹出窗口或选项页面中分配键盘快捷键?无需他们进入扩展页面,滚动到底部并打开键盘快捷菜单。
【问题讨论】:
Chrome API 是否可以让用户从扩展弹出窗口或选项页面中分配键盘快捷键?无需他们进入扩展页面,滚动到底部并打开键盘快捷菜单。
【问题讨论】:
在 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 方法打开,
但不能直接通过<a href="..."> 链接。
您仍然可以使用标准的<a> 链接和上面显示的点击侦听器;只是不要忘记阻止默认点击事件以避免控制台出错:
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网址?
chrome://extensions/configureCommands 重定向。从提交消息中的“[MD Extensions]”标签看来,这是向Material Design-based Extensions page 迁移的一部分。我不确定哪个版本的 Chrome 开始支持 chrome://extensions/shortcuts URL,并且文档(如 @Xan 提到的)仍然声明 chrome://extensions/configureCommands。