Jquery中文网 www.jquerycn.cn
Jquery中文网 >  脚本编程  >  javascript  >  正文 如何解决iframe中onload事件不响应的问题

如何解决iframe中onload事件不响应的问题

发布时间:2014-12-30   编辑:www.jquerycn.cn
遇到了iframe中onload事件不响应的问题,通过文中的方法,可以完美解决这个问题。有需要的朋友参考下。

通过iframe实现一些交互功能,并且在用iframe时,往往要用到iframe的onload事件。

通过createElement创建的iframe的onload事件,有时不响应。

下面一起分析下原因,并提供相应的解决方法。

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

复制代码 代码示例:
<script>
function createFrame(){
 var frame = document.cerateElement("iframe");
 frame.onload = function(){alert("loaded - createFrame");}
 frame.src = "http://www.jquerycn.cn";
 document.body.appendChild(frame);
}
</script>

代码说明:
实现了预想的效果,但是在IE下面似乎就失效了。
产生这种问题的原因,可能IE在检测到iframe时,认为已经装载完成了,通过createElement创建的iframe,似乎在创建的一瞬间它的onload就完成了,后面的onload设定大概也就无效了。

再来看一个方法:
 

复制代码 代码示例:
<script>
function includeFrame(){
 var div = document.createElement("div");
 div.innerHTML = "<iframe onload=\"javascript:alert('loaded -includeFrame');\" src=\"http://www.jquerycn.cn\"></iframe>";
 document.body.appendChild(div);
}
</script>

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

您可能感兴趣的文章:
如何解决iframe中onload事件不响应的问题
jquery如何实现在加载完iframe的内容后再进行操作
jquery加载完iframe的内容后才进行下一步操作的实现方法
如何判断 iframe 是否加载完成
JavaScript Iframe自适应高度问题的解决方法
动态添加页面body OnLoad事件的简单js代码
jQuery中的常用事件总结
html5 frameset标签的替代方案是什么?frameset标签替代的解决办法
jquery在firefox中刷新iframe页面,提示重复之前动作的解决方法
js判断当前页面是否被iframe引用的方法

[关闭]