Ctrl+をオーバーライドすることは可能Dですか? たとえば、ブックマークにリンクを追加したくconsole.log
ありません。
3 に答える
ショートカットは、chrome.commands
API を使用してオーバーライドできます。拡張機能は、マニフェスト ファイルでデフォルトのショートカット (例: Ctrl+D) を提案できますが、chrome://extensions/
以下に示すように、ユーザーは でこれを自由にオーバーライドできます。
使用法
この API はまだ開発中であり、 BetaおよびDevチャネルでのみ利用できます。Canaryビルドは 詳細情報. Chrome 24 以降、おそらく誰でも利用できるようになります。
Chrome 23 以前で API をテストする場合は、「実験的」権限をマニフェスト ファイルに追加しchrome.experimental.commands
、chrome.commands
. chrome://flags/
また、「Experimental Extension APIs」にアクセスして有効にするか、--enable-experimental-extension-apis
フラグを付けて Chrome を起動します。
manifest.json
{
"name": "Remap shortcut",
"version": "1",
"manifest_version": 2,
"background": {
"scripts": ["background.js"]
},
"permissions": [
"tabs"
],
"commands": {
"test-shortcut": {
"suggested_key": {
"default": "Ctrl+D",
"mac": "Command+D",
"linux": "Ctrl+D"
},
"description": "Whatever you want"
}
}
}
background.js
// Chrome 24+. Use chrome.experimental.commands in Chrome 23-
chrome.commands.onCommand.addListener(function(command) {
if (command === 'test-shortcut') {
// Do whatever you want, for instance console.log in the tab:
chrome.tabs.query({active:true}, function(tabs) {
var tabId = tabs[0].id;
var code = 'console.log("Intercepted Ctrl+D!");';
chrome.tabs.executeScript(tabId, {code: code});
});
}
});
ドキュメンテーション
使用する必要はありません。コンテンツ スクリプトを使用して、イベントchrome.commands
をトラップし、それを呼び出して、必要に応じて処理できます。コンテンツ スクリプトの一部として機能するスニペットの例:keydown
preventDefault
stopPropagation
document.addEventListener('keydown', function(event) {
if (event.ctrlKey && String.fromCharCode(event.keyCode) === 'D') {
console.log("you pressed ctrl-D");
event.preventDefault();
event.stopPropagation();
}
}, true);
この方法でオーバーライドできないのは、ctrl-N
やなどのウィンドウ処理コマンドだけctrl-<tab>
です。
別の解決策: ブラウザのアドレス バーに chrome:extensions と入力します。これにより、Chrome 拡張機能ページが表示されます。
左上のメニュー (「メニュー/バーガー ボタン」) の [キーボード ショートカット] をクリックします。
ブックマークを変更しないプラグインに Ctrl-D を割り当てます。
これにより、誤って Ctrl-D を押したときにブックマークが直接作成され、代わりに他のアドオンがポップアップするという問題が解決されます。