私は、ユーザーがVivaldiブラウザでクロムのようなタブの切り替えを使用できるようにする拡張機能を作成しています。background.jsのChrome拡張キーダウンリスナー
私はもともとcontent.jsスクリプトによって処理されたイベントがあったaddEventListener("keydown", function(e) {
console.log(e.code); // never gets here
})
を試してみましたが、私のbackground.jsで
が、しかし、これは私がにメッセージを送ることができる前に完全にロードされるように任意の新しいタブを必要とbackground.jsスクリプト
function Listener()
{
this.stage = 0;
this.listen();
}
Listener.prototype.listen = function()
{
addEventListener("keydown", this.handleKeyDown);
addEventListener("keyup", this.handleKeyUp);
}
Listener.prototype.handleKeyDown = function(event)
{
for(var i = 0; i < 9; i++) {
if(event.ctrlKey) {
if(event.code == "Digit" + (i + 1)) {
chrome.runtime.sendMessage({
greeting: i
}, function(response) {
console.log(response);
})
}
}
}
}
new Listener();
この機能を自分のbackground.jsに移動して、ブラウザの動作とは独立して実行したいと考えています。
現在のWebページでもコンテンツスクリプトだけがDOM関連のものにアクセスできますが、これは、「これはbackground.jsスクリプトにメッセージを送信する前に、新しいタブを完全に読み込む必要がありますか?スクリプトが実行されるのですか? –
どのタブが読み込まれているかに関係なくスクリプトが実行されます。@HaibaraAi - タブスイッチャーです。新しいタブを開くと、キーの組み合わせを使用してタブ1に戻ることができます例えば、Ctrl + 1を押しても可能ですが、新しいタブが最初に読み込まれるのを待つだけです。 –
@Xanは正しいと思います。「chrome.commands」はその目的のためです。キーの組み合わせにCtrlまたはAltを含める必要があります。 –