1
當試圖通過從後臺腳本內容腳本的消息,我使用背景內容腳本消息:消息內容腳本之前發送準備
chrome.tabs.query(
{active: true, currentWindow: true},
function(tabs) {
chrome.tabs.sendMessage(
tabs[0].id,
{greeting: "hello"},
function(response) {
console.log(response.farewell);
}
);
});
在後臺腳本
和相應的監聽器
chrome.runtime.onMessage.addListener(
function(request, sender, sendResponse) {
if (request.greeting === "hello") {
sendResponse({farewell: "goodbye"});
}
});
在內容腳本中(根據the documentation)。現在
,我可能要送東西給內容腳本在當前選項卡的Web請求已完成,例如,
chrome.webRequest.onCompleted.addListener(
// sender code from above
)
我發現,不過,背景腳本發送郵件時內容腳本還沒有被注入到頁面中。因此,沒有答覆。
如何解決這個問題?是否有一個事件可以在後臺腳本中監聽,告訴我內容腳本何時加載?
什麼觸發你的第一個片段?對於競賽狀況,重要的是要知道。 – Xan
另外,對於所有聖潔的愛,我希望你不要在你的代碼中使用'greeting' /'farewell'。這段示例代碼已經成爲擴展編程中真正的[貨物崇拜](https://en.wikipedia.org/wiki/Cargo_cult)對象,並且它有點噁心。 – Xan
@Xan澄清。當然,我實際上並沒有使用「問候」/「告別」。 :) –