我试图在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).
任何人都可以帮助我吗?