2017-07-27 10 views

答えて

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"]が必要な場合があります。

+0

興味深いことに、あなたはどこで 'chrome:// extensions/configureCommands' URLをどこから探しましたか? – Xan

+0

数ヶ月前に、スタイリッシュな拡張機能の新しいフォークである[Stylus](https://github.com/openstyles/stylus)に追加されました。 – wOxxOm

+0

実際、https://developer.chrome.com/extensions/commands#usage _のドキュメントにあります:「chrome:// extensions/configureコマンドのショートカットを手動で追加できます」_ – Xan