有沒有辦法知道內容腳本是否已被成功注入。我知道我們可以使用消息傳遞。但除此之外還有其他方法嗎?Chrome擴展程序 - 知道內容腳本是否已被注入?
回答
我認爲最簡單的方法是使用可選的回調executeScript
。使用'success';
自行結束您的內容腳本。那麼你的注射電話會是:
chrome.tabs.executeScript(tabId, details, successStatus);
function successStatus(frameResults) {
if (frameResults[0] === 'success') {
// successfully injected
}
}
你是什麼意思? 。 –
'frameResults'是一個數組,其中每個數組元素是框架中內容腳本中最後一個評估過的表達式。所以你希望你的內容腳本以一個表示成功加載的表達式結束。在這種情況下,你可以簡單地寫成「'成功';'在自己的路線上。 Chrome會評估該表達式,這將成爲結果數組中的條目。 – Teepeemm
我加了就像你說的..但是接收空 –
好吧,說我們正在談論的實際頁面,而不是背景延伸。
首先,你必須在頁面中包含的scrits,這裏是即時通訊做這個
var j = document.createElement('script');
j.src = chrome.extension.getURL('bower_components/jquery/dist/jquery.min.js');
(document.head || document.documentElement).appendChild(j);
var k = document.createElement('script');
k.src = chrome.extension.getURL('bower_components/jquery-ui/jquery-ui.min.js');
(document.head || document.documentElement).appendChild(k);
再怎麼檢查它是否被加載我有一個if條件
if((/in/.test(document.readyState)) || (undefined === Backbone)) {
setTimeout('refresh(' + f + ')', 10);
} else {
f();
console.log("Loaded Main Application");
所以我詢問狀態是否準備就緒,然後檢查瀏覽器是否加載了我的js。
希望它可以幫助
OP在後臺/活動頁面中使用executeScript,因此他的注入方式與您不同。 (並且不要使用'setTimeout'的eval形式,在這種情況下,你應該使用'refresh.bind(undefined,f)'。) – Teepeemm
謝謝你,生病了嗎 – jstuartmilne
- 1. Chrome擴展程序,內容腳本的程序化注入
- 2. Chrome擴展代碼和內容腳本vs注入腳本
- 3. Chrome擴展內容腳本
- 4. 從內容腳本觸發Chrome擴展程序通知
- 5. 內容腳本在Chrome擴展程序被執行多次
- 6. Chrome擴展程序:如何在注入後刪除內容腳本?
- 7. Chrome擴展程序:創建選項卡,然後將內容腳本注入它
- 8. Chrome擴展程序:如何刪除注入後的內容腳本CSS?
- 9. Chrome擴展程序 - 每頁加載多次注入內容腳本
- 10. Chrome擴展內容腳本CSS不注入
- 11. 基於URL注入Chrome瀏覽器擴展內容腳本
- 12. Chrome擴展的內容腳本沒有被注入特定網站
- 13. Chrome擴展的內容腳本沒有被注入任何網頁
- 14. 內容腳本沒有被注入到擴展html頁面
- 15. 使用Chrome擴展內容腳本嵌入其他內容
- 16. 內容腳本沒有迴應內容腳本的Chrome擴展
- 17. Chrome擴展內容腳本中的JQueryUI
- 18. Chrome擴展(內容腳本)緩存CSS
- 19. Chrome擴展引用/從內容腳本
- 20. 停止內容腳本在Chrome擴展
- 21. Chrome擴展 - 內容腳本點播
- 22. Chrome擴展:如何檢測是否使用內容腳本安裝了擴展
- 23. Chrome擴展內容腳本不是首先注入的,如何調試?
- 24. 內容腳本中的Chrome擴展程序storage.sync.set引發異常
- 25. Chrome擴展程序,內容腳本和XSS攻擊
- 26. Chrome擴展程序使用內容腳本更改innerText
- 27. Chrome擴展程序:打包前調試內容腳本
- 28. Chrome擴展程序 - 內容腳本匹配限於權限嗎?
- 29. Chrome擴展程序:內容腳本和background.html之間的通信
- 30. Chrome擴展程序內容腳本:等待變量
你用'executeScript'注入它嗎? – wOxxOm
你的意思是在實際的頁面中,而不是在後臺應用程序的權利? – jstuartmilne
是使用performcript ... –