转自:http://www.sosuo8.com/article/show.asp?id=2916
一般来说,我们判断 iframe 是否加载完成其实与判断JavaScript 文件是否加载完成采用的方法很类似:
JavaScript
复制代码
- var iframe = document.createElement("iframe");
- iframe.src = "http://www.planabc.net";
- if (!/*@cc_on!@*/0) { //if not IE
- iframe.onload = function(){
- alert("Local iframe is now loaded.");
- };
- } else {
- iframe.onreadystatechange = function(){
- if (iframe.readyState == "complete"){
- alert("Local iframe is now loaded.");
- }
- };
- }
- document.body.appendChild(iframe);
最近, Nicholas C. Zakas 文章《Iframes, onload, and document.domain》的评论中 Christopher 提供了一个新的判断方法(很完美):
JavaScript
复制代码
- 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);
几点补充说明:
1、IE 支持 iframe 的onload 事件,不过是隐形的,需要通过 attachEvent 来注册。
2、第二种方法比第一种方法更完美,因为 readystatechange 事件相对于 load 事件有一些潜在的问题