我正在編寫一個需要檢查DOM中元素的chrome擴展。我目前正在嘗試解決在document.onload
已經觸發後將腳本添加到DOM的情況,並且這些腳本向DOM添加了更多元素,並且我希望查看這些元素。有時這些元素是在一個子幀中,有時腳本將它們添加到document.write
。是的,我知道,我知道。在Chrome中檢測異步腳本加載
目前的主要問題似乎是我無法檢測腳本是否已經加載。如果它沒有加載,我可以安全地附加一個偵聽器到script.onload
,但如果它已經加載,onload
不會觸發。
在其他幾個位置,我會執行諸如檢查readyState
以查看文檔是否已準備就緒。如果是這樣,我執行我的代碼,如果不是,我附加一個onload監聽器。然而,Chrome中的異步腳本似乎沒有readyState,儘管在幾個SO答案中引用了這樣的屬性。
那麼有什麼方法可以找出是否已經加載了異步腳本?由於這是Chrome特定的,因此它不需要跨瀏覽器兼容。是否有某種方法可以使用MutationObserver爲每腳本可靠地附加onload監聽器並手動跟蹤其狀態?
謝謝!
等等,你爲什麼讓自己變得更加困難?爲什麼跟蹤腳本'onload'與MutationObserver,當你可以跟蹤正在添加的實際節點? – Xan