判斷iframe框架是否加載完成的方法


理論上來說框架里面加載的是一個完成的html文檔,其判斷的方法和平常html文件加載應該一致。最近在一個項目中用到了iframe框架,需要判斷框架中的文檔是否加載完畢,加載完后再進行下一步的操作,這里找到了幾個方法來實現判斷:

var iframe = document.createElement("iframe");
iframe.src = "http://www.cnblogs.com/lifeil/";

if (!/*@cc_on!@*/0) { //if not IE
    iframe.onload = function(){
        alert("框架加載完畢.");
    };
} else {
    iframe.onreadystatechange = function(){
        if (iframe.readyState == "complete"){
            alert("框架加載完畢.");
        }
    };
}

document.body.appendChild(iframe);

后來有個牛人找到了如下更完美的處理方法:

var iframe = document.createElement("iframe");
iframe.src = "http://www.cnblogs.com/lifeil/";

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);

相比較值錢的方法可以發現,這個方法使用了onload方法來判斷,這種方法判斷框架是否加載完畢比之前的readystatechange 事件更加穩定。在IE瀏覽器中,需要通過attachEvent方法來注冊onload事件。這樣就可以完美的判斷框架是否加載完畢了。

PS:這里說的IE瀏覽器中onload方法是隱形的是指,動態創建的iframe需要通過attachEvent來綁定事件,而已經存在寫在html文檔里面的IE中也支持iframe.onload事件.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM