iframe 加載外部資源,顯示隱藏loading,onload失效

在項目中使用iframe 來加載外部資源,須要在iframe請求外部資源的時候,須要顯示一個loading,在加載完成後,將這個loading隱藏掉,剛開始看到W3C中 iframe有一個 onload事件----該事件在iframe加載資源完成後就會觸發,可是這個事件我試了試,發現觸發不了,最在https://stackoverflow.com/questions/20572734/load-event-not-firing-when-iframe-is-loaded-in-chrome找到了有效的方法javascript

 

解決辦法以下:html

1 <iframe class="html_area" src="http://www.baidu.com"></iframe>

設一個變量,var show_loading = true;   //這個變量爲真表示loading顯示,反之loading隱藏java

而後 設一個計時器chrome

var self = this
var html_iframe = document.getElementsByClassName('html_area')[0]
var interval = setInterval(function () {
    var iframeDoc = html_iframe.contentDocument || html_iframe.contentWindow.document;
    if(iframeDoc.readyState == 'complete' || iframeDoc.readyState == 'interactive'){
        self.show_iframe_loading = false
        clearInterval(interval)
    }
},500)

這樣在剛開始請求的時候就顯示loading,而後啓動了計時器,每500ms檢測一次,若是iframe內有內容的話,就將loading隱藏了this

相關文章
相關標籤/搜索