我有 Opera 侧边栏扩展
,当扩展被触发(sb 打开)时,我需要在活动选项卡代码中注入一些带有消息监听器的
代码工作正常,问题是如果我关闭侧边栏并再次打开它,我会得到另一个监听器注入(发送消息时控制台将记录两次)......然后再次重新打开+1......依此类推。
我试图通过删除监听器来解决这个问题,但它不起作用。
对于每个新的扩展开始(注入),我仍然在控制台上获得 +1。
而且我不能将addListener放在removeListener回调中。根本不起作用
(我猜它不支持这种形式)
这是我注入的代码:
chrome.tabs.executeScript({code:
"chrome.runtime.onMessage.removeListener(msgL);\
chrome.runtime.onMessage.addListener(msgL);\
function msgL(msg) {\
if (msg.test) console.log('aaaaaaaaaaaaaaaaaaaaaaaaa');\
}"
}, function(result) {
if (!result) console.log(chrome.runtime.lastError);
});
注入新的监听器时如何清除以前的监听器?