我在通過背景頁面與多個內容腳本進行通信時遇到問題。我的背景頁面有類似的代碼:鉻擴展後臺頁面應該如何與多個內容腳本進行通信?
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
子句中有一個斷點時。我在這裏做錯了什麼?
感謝,
-Greg
在過去,我有我的擴展嗆當內容腳本並沒有調用sendResponse回調。我會檢查是否仍然如此。 – Greg 2010-08-24 20:23:53