iframe的onload在Chrome/Opera中執(zhí)行兩次Bug的解決方法
更新時(shí)間:2011年03月17日 00:20:38 作者:
創(chuàng)建iframe對象,添加load事件, 再將iframe添加到body中。Chrome/Opera中會(huì)造成load事件的handler執(zhí)行兩次。
復(fù)制代碼 代碼如下:
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>iframe的onload在Chrome/Opera中執(zhí)行兩次</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>
解決方法很簡單,改下代碼順序即可:創(chuàng)建iframe, 添加到body中,最后添加load事件。所有瀏覽器下將表現(xiàn)一致。
復(fù)制代碼 代碼如下:
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,一直在載入中,能持續(xù)30s以上。大家試試看呢?
相關(guān)文章
JavaScript:new 一個(gè)函數(shù)和直接調(diào)用函數(shù)的區(qū)別分析
或許許多人對此不以為然,在函數(shù)前加 new 關(guān)鍵字,不就是實(shí)例化一個(gè)對象嗎?但事情顯然沒那么簡單2013-07-07IE瀏覽器不支持getElementsByClassName的解決方法
這篇文章主要介紹了IE瀏覽器不支持getElementsByClassName的解決方法,本文的方法比較完美的解決了這個(gè)問題,需要的朋友可以參考下2014-08-08javascript動(dòng)態(tài)創(chuàng)建對象的屬性詳解
在本篇文章中我們給大家分享了關(guān)于javascript動(dòng)態(tài)創(chuàng)建對象的屬性的相關(guān)知識(shí)點(diǎn)以及代碼分享,需要的朋友們參考學(xué)習(xí)下。2018-11-11JavaScript this關(guān)鍵字指向常用情況解析
這篇文章主要介紹了JavaScript this關(guān)鍵字指向常用情況解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09Echarts圖表分析巴西隊(duì)歷年戰(zhàn)績實(shí)例詳解
這篇文章主要為大家介紹了Echarts圖表分析巴西隊(duì)歷年戰(zhàn)績實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12使用Three.js實(shí)現(xiàn)太陽系八大行星的自轉(zhuǎn)公轉(zhuǎn)示例代碼
這篇文章主要給大家介紹了關(guān)于如何使用Three.js實(shí)現(xiàn)太陽系八大行星的自轉(zhuǎn)公轉(zhuǎn)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Three.js具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04