我爲gmail創建了一個Chrome擴展,並且在某些頁面對象加載時看到了一些奇怪的不穩定性。由於我試圖修改GMAIL DOM(爲我的擴展定製它),因此需要在我的初始化器運行之前完全加載。我的擴展總是在DOM完全加載之前初始化,所以我需要一種方法讓它輪詢,直到DOM完全形成來完成它的事情。Gmail Chrome瀏覽器擴展和document.readyState
我已經嘗試使用document.readyState來輪詢文檔,所以我知道何時開始修改完全加載的DOM,但它並不總是工作。
一旦頁面開始加載,我在控制檯中輸出document.readyState每100毫秒輪詢一次,並且我注意到大約1/10頁加載document.readyState在DOM完全加載之前變爲「完整」。我可以告訴這個,因爲我爲GMAIL撰寫按鈕做了一個jQuery選擇器,並且在發生這種情況時它變爲空,並且每隔一段時間都按預期發現它(它找到了撰寫按鈕)。
這是爲什麼?有沒有更好的方法讓我的擴展名初始化腳本檢查,以確保DOM在完成DOM mods之前完全加載?
編輯 - 我有腳本檢查document.readyState作爲腳本注入到用戶界面作爲內容腳本。
如果您正在等待撰寫按鈕出現,爲什麼不輪詢該按鈕而不是'document.readyState'? readyState和該按鈕之間沒有保證關係... –