iframe的onload在Chrome/Opera中执行两次Bug的解决方法
更新时间:2011年03月17日 00:20:38 作者:
创建iframe对象,添加load事件, 再将iframe添加到body中。Chrome/Opera中会造成load事件的handler执行两次。
复制代码 代码如下:
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>iframe的onload在Chrome/Opera中执行两次</title>
</head>
<body>
<script>
var ifr = document.createElement('iframe');
ifr.onload = function(){alert(1);};
document.body.insertBefore(ifr,document.body.childNodes[0]);
ifr.src = 'http://www.baidu.com';
</script>
</body>
</html>
解决方法很简单,改下代码顺序即可:创建iframe, 添加到body中,最后添加load事件。所有浏览器下将表现一致。
复制代码 代码如下:
var ifr = document.createElement('iframe');
document.body.insertBefore(ifr,document.body.childNodes[0]);
ifr.src = 'http://www.baidu.com';
ifr.onload = function(){alert(1);};
此外用Safari5测试,没有alert,一直在载入中,能持续30s以上。大家试试看呢?
相关文章
如何解决easyui自定义标签 datagrid edit combobox 手动输入保存不上
这篇文章主要介绍了如何解决easyui自定义标签 datagrid edit combobox 手动输入保存不上,需要的朋友可以参考下2015-12-12
KnockoutJS 3.X API 第四章之数据控制流foreach绑定
这篇文章主要介绍了KnockoutJS 3.X API 第四章之数据控制流foreach绑定的相关资料,需要的朋友可以参考下2016-10-10
JavaScript BASE64算法实现(完美解决中文乱码)
这篇文章主要介绍了JavaScript BASE64算法实现(完美解决中文乱码),先用escape()对中文进行编码.然后再进行base64编码. 解码时,再加入()对中文进行解码,这样就可以避免中文乱码问题2017-01-01
JavaScript Scoping and Hoisting 翻译
希望这篇文章能够给JavaScript程序员最容易困惑的部分一些启示。我尽力写的全面,以免引起更多的困惑。如果我写错了或是漏掉了某些重要的东西,请一定让我知道2012-07-07
Lerna入门之管理TypeScript monorepo教程
这篇文章主要为大家介绍了Lerna入门之管理TypeScript monorepo教程详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2022-11-11


最新评论