1. 程式人生 > >判斷 iframe 是否載入完成的完美方法

判斷 iframe 是否載入完成的完美方法



一般來說,我們判斷 iframe 是否載入完成其實與判斷 JavaScript 檔案是否載入完成採用的方法很類似:

var iframe = document.createElement("iframe");
iframe.src 
="http://www.planabc.net";
if (!/*@[email protected]*/0) { //ifnot IE    
    iframe.onload 
=function(){        
        alert(
"Local iframe is now loaded.");    
    };
else {    
    iframe.onreadystatechange 
=function(){//ie
        
if (iframe.readyState =="complete"){            
            alert(
"Local iframe is now loaded.");
        }
    };
}
document.body.appendChild(iframe);

最近,Nicholas C. Zakas文章《Iframes, onload, and document.domain》的評論中 Christopher 提供了一個新的判斷方法(很完美) var iframe = document.createElement(
"iframe");
iframe.src 
="http://www.planabc.net";
if (iframe.attachEvent){    
    iframe.attachEvent(
"onload"function(){        
        alert(
"Local iframe is now loaded.");    
    });
else {    
    iframe.onload 
=function(){        
        alert(
"Local iframe is now loaded.");    
    };
}
document.body.appendChild(iframe);

我自己的例項:
<div class="contentRight">
                    
<iframe name="myframe" id="myframe" src="" frameborder="0" scrolling="no" width="100%" height="500"></iframe>
                
</div>
var iframe = document.getElementById("myframe");
    iframe.src
="<%=request.getContextPath()%>/jsp/dwgl/hygl/zdhygl/dwgl_hygl_zdhygl_cx_part2.jsp";
    
if (iframe.attachEvent){
        iframe.attachEvent(
"onload"function(){
            get_list_data_nopar();
         });
    }
else{
        iframe.onload 
=function(){
            get_list_data_nopar();
        };
    }


幾點補充說明:
1、IE 支援 iframe 的onload 事件,不過是隱形的,需要通過 attachEvent 來註冊。
2、第二種方法比第一種方法更完美,因為 readystatechange 事件相對於 load 事件有一些潛在的問題。

相關推薦

判斷 iframe 是否載入完成完美方法

 一般來說,我們判斷 iframe 是否載入完成其實與判斷 JavaScript 檔案是否載入完成採用的方法很類似: var iframe = document.createElement("iframe"); iframe.src ="http://www.plan

判斷iframe是否載入完畢,在執行某方法

var iframe = document.createElement("iframe"); iframe.src = "http://www.jb51.net"; if (!/*@[email protected]*/0) { //if not IE iframe.onload = f

js中常用方法以及document.readyState 判斷頁面是否載入完成 complete和interactive

傳回XML 檔案資料的目前狀況。   基本語法 intState = xmlDocument.readyState;   說 明 這個屬性是隻讀的,傳回值有以下的可能: 0-UNINITIALIZED:XML 物件被產生,但沒有任何檔案被載入。 1-LOADING:載入程式進行中,但檔案尚未開始解析。 2-

用 document.readyState == "complete" 判斷頁面是否載入完成

function MyLoading(falg) {             var loading = "<div id='dlading' style='position:absolute;left:0;width:100%;height:100%;top:0;b

判斷 iframe 是否載入完畢

我能想到的有以下幾種方式: 方法一、jQuery load() Js程式碼   var frm = document.getElementById('myiframe');  $(frm).load(function(){                             //  等ifra

用js判斷頁面是否載入完成

<!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8"> <t

判斷圖片是否載入完成的三種方式

有時需要獲取圖片的尺寸,這需要在圖片載入完成以後才可以。有三種方式實現,下面一一介紹。 一、load事件 <!DOCTYPE HTML> <html> <head> <meta charset="utf-8">

判斷jQuery 是否載入完成完成繼續判斷 解決方案

一個比較頭疼的事情,有些外掛繫結dom物件的,然後又用jq的語法,比如你在vue+node的時候,基本就要百度方法 我提供一個另類解決方案  比如你下了個輪播圖外掛   a,js 你開啟他的a.js然後  用  function lbt(){} 把整個JS包起來在頭部 再

js判斷iframe是否載入成功

在專案中經常要動態新增iframe,然後再對新增的iframe進行相關操作,而往往iframe還沒新增完呢,後邊的程式碼就已經執行完了,所以有些你寫的東西根本沒有顯示出來。這時,我們就要考慮是否可以等iframe載入完後再執行後邊的操作,當然,各種瀏覽器早就為我們考慮到啦,

android 監聽整個介面載入完成方法

 @Override     protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);        View view = (View

Javascript判斷頁面是否載入完成

    很多時候我們在使用document.getElementById的時候直接在script標籤中獲取物件,然後使用,此時程式會出現該物件為undefined。 <script>    var dom = document.getElementById("

js判斷圖片是否載入完成

<span style="font-family:Microsoft YaHei;font-size:12px;"><!DOCTYPE html> <html lang

判斷 iframe 載入完成 獲取其內容

var oFrm = document.getElementById(id); src=$(id).attr("src"); oFrm.onload = oFrm.onreadystatechange = function () { if (this.readyState &

vb.net 網頁載入完成判斷

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load         WebBrowser1.ScriptErrorsSuppressed = True '網頁

判斷webview載入完成

專案中appbarlayout中包含webview,需求是載入完成後直接跳轉的評論處,頂部懸停; 當沒有webview時,在載入完成後呼叫appbar.setExpanded(false)沒有問題; 當含有webview顯示時,由於webview載入的原因,開始是appbar關閉,載入完成後

ExecutorService併發執行時,判斷執行緒任務執行完成方法

參考: https://blog.csdn.net/u012168222/article/details/52790400 https://www.cnblogs.com/stonefeng/p/5967451.html //獲取CPU數量 static int processor

Vue.js 關於頁面載入完成後執行一個方法的問題

首先我們會想著在mounted或者created裡面加入想要執行的方法,但是有的時候會遇到在你執行這個方法的時候,頁面還並沒有被渲染完成,所以就會出現這個方法在匹配頁面標籤報錯的情況。 解決思路: 1.通過子頁面呼叫父頁面的方法,因為在子頁面開始渲染的時候,你的父頁面肯定

mfc webbrowser判斷網頁載入完成

mfc 的webbrowser是大家使用非常多的一種檢視操作網頁的一種控制元件,在使用中,判斷網頁什麼時候載入完成就顯得非常重要了。下面介紹我採用的一種方法,這種方法可以判斷網頁內部即使有frame網頁也是可以判斷成功。 在對話方塊裡新增一個webbrowser控制元件,在對話方塊的初始化函

原生JS判斷頁面中圖片載入完成

自己寫的判斷頁面中圖片載入完成的方法,用原生JS完成,不用jq主要考慮在不載入jq的情況下,程式碼可以正常執行 判斷指定ID的盒子中所有圖片載入,demo程式碼如下: <!DOCTYPE HTML> <html> <head> &l

如何準確判斷 WebView 載入完成

原文 正常情況下我們把處理網頁載入完畢的程式碼放在 - (void)webViewDidFinishLoad:(UIWebView *)webView裡。但 WebViewDidFinishLoad 時網頁真的載入完了嗎? 官方文件並沒有說明 WebViewDidFi