我正在尝试在 chrome 中创建页面操作扩展。我有一个与单击页面操作时显示的弹出窗口相对应的 html 页面。我popup.js
在这个 html 页面中包含了一个脚本文件。从这个页面我正在尝试向后台 js 文件发送消息background.js
。问题是我sendRequest
只打电话一次,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).
有人可以帮我吗?