Chrome APIでは、拡張機能のポップアップやオプションページからキーボードショートカットを割り当てることはできますか?拡張機能のページに移動する必要がなければ、下にスクロールしてキーボードショートカットメニューを開きます。ポップアップまたはオプションからキーボードのショートカットを割り当てる
1
A
答えて
4
ショートカットキーをプログラムで割り当てる方法はありませんが、内線のポップアップにボタンやリンクを追加して、組み込みダイアログを開くことができます。
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'
});
注:
クローム:// URLは唯一のクロム/ WebExtensions APIメソッドを経由して開くことができます、
<a href="...">
リンクを経由しないでください。上記のクリックリスナーを使用して標準の
<a>
リンクを引き続き使用できます。ちょうどコンソールでのエラーを回避するために、デフォルトのクリックイベントを防ぐことを忘れないでください:Operaブラウザでdocument.getElementById('hotkey').onclick = event => { chrome.tabs.create({url: 'chrome://extensions/configureCommands'}); event.preventDefault(); };
をURLが
opera://settings/configureCommands
であるあなたがnavigator.userAgent
文字列でを使用してブラウザを検出することができますFirefox WebExtensionsのコマンドショートカットをカスタマイズするためのUIはまだありません。
可能性強化は、このようなURLは、すでに私たちのボタンによって、いくつかのタブで開かれたかどうかを最初にチェックすることです:
chrome.tabs.query({url: 'chrome://extensions/configureCommands'}, tabs => { if (tabs && tabs[0]) { chrome.tabs.update(tabs[0].id, {active: true}); chrome.windows.update(tabs[0].windowId, {focused: true}); } else { chrome.tabs.create({url: 'chrome://extensions/configureCommands'}); } });
しかし、それはクロムに手動で起動され、ダイアログ見つけることができません://拡張機能のページをURLを変更しないためです。
manifest.jsonに
"permissions": ["tabs"]
または少なくとも["activeTab"]
が必要な場合があります。
興味深いことに、あなたはどこで 'chrome:// extensions/configureCommands' URLをどこから探しましたか? – Xan
数ヶ月前に、スタイリッシュな拡張機能の新しいフォークである[Stylus](https://github.com/openstyles/stylus)に追加されました。 – wOxxOm
実際、https://developer.chrome.com/extensions/commands#usage _のドキュメントにあります:「chrome:// extensions/configureコマンドのショートカットを手動で追加できます」_ – Xan