Chrome でページ アクション拡張機能を作成しようとしています。ページアクションをクリックすると表示されるポップアップに対応するhtmlページがあります。popup.js
この html ページにスクリプト ファイルを含めました。このページから、バックグラウンド js ファイルにメッセージを送信しようとしていますbackground.js
。問題は、私が呼び出しているのはsendRequest
1 回だけpopup.js
ですが、バックグラウンド ページで複数回受信していることです。そこでファイル アクションを実行していますが、同時アクセスが原因でスクリプト エラーが発生します。ここにメッセージパッシングに関連するコードを貼り付けています
拡張ファイル - popup.js
chrome.extension.sendRequest({"intent" : "read"}, function (message) {
console.log(message);
});
背景ページ - background.js
(function(){
var fileName = "credentials.txt";
var fileSystem;
function checkUrl(tabId, changeInfo, tab) {
if(/https?:\/\/.*?\/olc/.test(tab.url)) {
chrome.pageAction.show(tabId);
chrome.extension.onRequest.addListener(function (request, sender, callback) {
callback("printed");
});
}
}
chrome.tabs.onUpdated.addListener(checkUrl);
})();
この場合、リスナーは 4 回呼び出されます。コールバックは最初に呼び出されます。次の 3 回は、Could not send response: Cannot send a response more than once per chrome.extension.onRequest listener per document (message was sent by extension kaejjpmlibijbgbgcfodphlkcjjkmjlk).
誰か助けてくれますか?というエラーが表示されます。