0
我正嘗試與使用消息傳遞切換到的標籤頁的內容腳本進行通信。這是我在background.js腳本中的代碼。OnActivated僅在新標籤頁打開時才起作用
chrome.tabs.onActivated.addListener(function(activeInfo) {
chrome.tabs.sendMessage(activeInfo.tabId, { greeting: "hello" }, function(response) {
console.log(response.farewell);
});
});
這裏是我在我的內容腳本代碼:
chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {
sendResponse({ farewell: "goodbye" });
loadContent();
});
是內容腳本不再處於非活動選項卡監聽,即使它切換回該選項卡?爲什麼這隻能在新打開的選項卡中運行?
爲了進一步闡明我爲什麼要這樣做,有時候標籤打開時沒有重新加載,我的腳本已經被執行。當與腳本有關的信息使用彈出選項進行更改時,我希望內容在換頁時重新加載,並且在不重新加載頁面的情況下再次運行特定功能。因此,注入內容腳本並不理想,因爲它已經被執行。
至於「它切換回該選項卡」,在該選項卡之前注入的內容腳本?我的意思是在你加載擴展之後,你有沒有重新加載之前打開的標籤以確保你的內容腳本被注入? –
您有一個有效的觀點。哈。我回到與舊版本的內容腳本標籤。我無法相信這是解決方案。謝謝。除了可能的魔法之外,你是如何得出結論的? – RandomPleb
請參閱[這裏](http://stackoverflow.com/documentation/google-chrome-extension/2850/content-scripts#t=201608010722142170944),這是一個經常被問到的問題,Xan在文檔中提到了這個技巧。 –