13

Ctrl+をオーバーライドすることは可能Dですか? たとえば、ブックマークにリンクを追加したくconsole.logありません。

4

3 に答える 3

10

ショートカットは、chrome.commandsAPI を使用してオーバーライドできます。拡張機能は、マニフェスト ファイルでデフォルトのショートカット (例: Ctrl+D) を提案できますが、chrome://extensions/以下に示すように、ユーザーは でこれを自由にオーバーライドできます。

キーボード ショートカット - 拡張機能とアプリ

使用法

この API はまだ開発中であり、 BetaおよびDevチャネルでのみ利用できます。Canaryビルドは 詳細情報. Chrome 24 以降、おそらく誰でも利用できるようになります。

Chrome 23 以前で API をテストする場合は、「実験的」権限をマニフェスト ファイルに追加しchrome.experimental.commandschrome.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});
         });
    }
});

ドキュメンテーション

于 2012-11-17T11:21:19.970 に答える
7

使用する必要はありません。コンテンツ スクリプトを使用して、イベントchrome.commandsをトラップし、それを呼び出して、必要に応じて処理できます。コンテンツ スクリプトの一部として機能するスニペットの例:keydownpreventDefaultstopPropagation

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>です。

于 2012-11-17T18:55:53.447 に答える
3

別の解決策: ブラウザのアドレス バーに chrome:extensions と入力します。これにより、Chrome 拡張機能ページが表示されます。

左上のメニュー (「メニュー/バーガー ボタン」) の [キーボード ショートカット] をクリックします。

ブックマークを変更しないプラグインに Ctrl-D を割り当てます。

これにより、誤って Ctrl-D を押したときにブックマークが直接作成され、代わりに他のアドオンがポップアップするという問題が解決されます。

于 2018-04-09T06:18:45.183 に答える