現在、Google Chrome拡張機能を作成しています。このオプションでは、ユーザーは常にオンになっているか、クリックしたときにのみアクティブにするかを選択できます。これを行うには、options.jsファイルとbackground.jsファイルが必要です。しかし、私は彼らが適切に通信するように多くの問題を抱えています。私はchrome.storage apiを使ってみましたが、何もしません。ここでoptions.jsに基づいてbackground.jsを変更する方法
はbackground.jsのための私のコードです:
chrome.browserAction.onClicked.addListener(function() {
// Send a message to the active tab
chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
chrome.tabs.sendMessage(tabs[0].id, {"message": tabs[0].url}, function(response));
});
});
chrome.tabs.onUpdated.addListener(function (tabId, changeInfo, tab) {
if (changeInfo.status == 'complete') {
chrome.tabs.query({active: true, currentWindow: true}, function(tabs){
// console.log(tabs.length);
chrome.tabs.sendMessage(tabs[0].id, {"message": tabs[0].url}, function(response) {});
});
}
});
そして、ここではoptions.jsのための私のコードです:
行動は "のonClick" に設定されている場合は、私だけしたいです実行する部分がchrome.browserAction.onClicked.addListener
です。振る舞いが 'alwaysOn'に設定されている場合、私はchrome.tabs.onUpdated.addListener
部分だけを実行します。デバッグが行われる限り、それらのチャンクは両方とも、彼らが想定している方法で動作します。私はちょうど現在のオプションに基づいてどちらか一方を動かす方法を知る必要があります。