我无法与后台页面中的多个内容脚本进行通信。我的背景页面有如下代码:
chrome.tabs.sendRequest(tabId, { targetScript:"content1" }, function (resp) {
if (resp.fromCorrectScript) {
DoMoreStuff();
}
});
我有如下内容脚本:
// content1.js
chrome.extension.onRequest.addListener(function (sender, request, sendResponse) {
if (request.targetScript === "content1") {
sendResponse({ fromCorrectScript:true });
} else {
sendResponse({});
}
});
和
// content2.js
chrome.extension.onRequest.addListener(function (sender, request, sendResponse) {
if (request.targetScript === "content2") {
sendResponse({ fromCorrectScript:true });
} else {
sendResponse({});
}
});
我的理解是我在后台页面中的回调应该被调用两次,一次来自每个内容脚本。看起来它有时只被调用了两次,而且几乎只有当我在if
子句中有断点时才被调用。我在这里做错了吗?
谢谢,
-格雷格