我試圖在Chrome中創建頁面動作擴展。我有一個html頁面,與點擊頁面動作時顯示的彈出窗口相對應。我在這個html頁面中包含了一個腳本文件popup.js
。從這個頁面我試圖發送消息到背景js文件background.js
。問題是我從popup.js
只撥打sendRequest
一次,但我在後臺頁面多次收到它。我正在做一個文件操作,由於併發訪問導致腳本錯誤。我粘貼路過這裏從擴展到後臺頁面傳遞的消息
擴展文件有關信息的代碼 - 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).
任何人都可以幫助我嗎?