我实现这个的方式有错误吗?我正在打开一个新选项卡,然后向该选项卡发送消息,但是所有其他具有侦听器的选项卡也会收到该消息。
在 background.js 中:
chrome.tabs.create({url:chrome.extension.getURL("placement.html")},function(tab){
chrome.tabs.sendMessage(tab.id, {
"name":"name",
"payload":payload
});
});
Run Code Online (Sandbox Code Playgroud)
在placement.js 中(在加载placement.html 时运行):
chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {
if (request.name == "name") {
payload = request.payload;
}
});
Run Code Online (Sandbox Code Playgroud)
我看到每当创建一个新选项卡时,有效负载都会发送到所有具有此 onMessage 侦听器的选项卡。这段代码相对较旧,所以我不确定最近是否有什么变化影响了 chrome.tabs.sendMessage 解释“tab.id”的方式。任何帮助表示赞赏!
javascript tabs google-chrome sendmessage google-chrome-extension