视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
jsiframe的onload事件不去作用的原因及解决办法
2020-11-27 20:32:14 责编:小采
文档


通过createElement_x_x创建的iframe的onload事件在有些时候不响应,具体原因和解决办法如下。

首先,我们来看一下下面这种方法:

function?createFrame(){?
 var?frame = document.cerateElement("iframe");
 frame.onload =?function(){alert("loaded - createFrame");}
 frame.src =?"http://www.phper.org.cn";
 document.body.a(frame);

}

这一段在FF下是完全如我们所想,能够达到预期效果,但是在IE下面似乎就失效了,导致这种结果的原因还不是十分清楚,有一种说法是IE在检测到 iframe的时候,就把认为它已经装载完成了,通过createElement_x_x创建的iframe,似乎在创建的一瞬间它的onload就完成了,后面的onload设定大概也就无效了。

下面我们再来看一个方法:

function?includeFrame(){
 var?div = document.create_rElement_x("div");
? div.innerHTML =?"";

? document.body.a(div);
}

这个方法在IE和FF下面测试都通过,上面的那种说法虽然不是很有根据,但是目前还没有找到更好的解释。如果真的是如上面所说的话,那通过第二种方法正好可以解决,因为在第二种方法中iframe的onload事件跳过createElement_x_x("iframe")这个步骤,避免了IE的检测。

注 onload必须在src前面才可以.

下载本文
显示全文
专题