何時發生'loadstop',相對於頁面中的事件,如jQuery的.ready或.load?
據爲loadstop事件的文檔:
當在客戶端頁(包括其所有子幀)的所有幀級負載已經完成觸發。這包括當前文檔中的導航以及子幀文檔級負載,,但而不是包括異步資源負載。
這表明它更類似於jQuery的.ready(),該DOM樹被加載後執行,而是在等待資產(的.css,.js文件)下載之前。
請關注該文檔頁面;這已經是很多自兩週前以來有所改善。
有沒有一種方法來捕獲或觸發保證「loadstop」後,會出現可能會在主應用程序和消息中可以看出發送和web視圖的JavaScript接收到事件?
你的manifest.json聲明您我-APP-main.js背景腳本(和你的WebView許可),它啓動您我-WebView的wrapper.html,其中包括您<webview>
標籤,也內聯一些JavaScript(或來源我-WebView的wrapper.js文件),其經onload
功能,這樣的事件偵聽器分配給您的WebView:
onload = function() {
webview = document.getElementById("the-id-attribute-of-my-webview");
webview.addEventListener("<EVENT>", function() {
// the cool stuff you want to do
}
}
<EVENT>
可以是我鏈接的文檔(包括loadstop
)中列出的任何webview DOM事件。你的主應用程序不應該在意這一切正在發生。 (這是異步!它是JavaScript!它是神奇的!)
如果你仍然困惑,只需在GitHub上搜索Google的webview sample即可。
我不知道這個onload代碼放在哪裏 - 在web視圖中?所以webview可以在主應用程序的同時接收'loadstop'?這可能是方便的,但主要的應用程序絕對不在乎。我預先加載了大量廣告(網頁瀏覽中的頁面)以顯示在自助服務終端上 - 它們不僅需要圖片,JavaScript ......,還需要在完成準備時告訴主應用,包括確定自己的播放長度。只有這樣才能允許主應用程序安排它們顯示給用戶,否則我的客戶不滿意。 – DaveWalley
是的,onload代碼被放置在(或鏈接到)調用webview的相同嵌入式HTML頁面中。對於你的具體問題,你可以使web瀏覽器默認隱藏在CSS中,然後將其切換爲從loadstop回調函數顯示? –
這基本上就是我在做的,但是從您的評論和文檔中,loadstop事件對於webview來說太早了 - 在加載異步資源之前以及在webview的JavaScript可以完成之前。只有webview知道這是什麼時候發生的,所以它需要發送消息或設置標誌或做一些事情,而不是主要的應用程序。順便說一句,解決方法我已經決定讓主應用程序每秒鐘輪詢webviews - 而不是JavaScript異步方式,但最終只有幾行代碼。 – DaveWalley