window/body/img/iframe 的onload事件

在html页面中,只有body,img,iframe这一类标签具有onload事件。

onload事件表示在当前元素载入完成后发生的事件。其中,window也有onload事件,但是跟body的是同一事件,如果页面上对两者都定义了该事件,只会响应一个。

iframe上的事件在ie6下有一些bug:

1.iframe的onload事件跟window.onload事件只能二者取其一,似乎ie把它看作同一个事件了!例如:

window.onload=function(){

    alert("window loaded");

}

var oIframe = document.getElementById("iframe");

oIframe .onload=function(){

    alert("iframe loaded");

}

这段代码只能响应iframe的事件,如果window.onload事件定义在后则只响应window的onload事件!

但是如果在iframe标签中定义响应方法则不会发生这种情况:

<iframe src=child.html" onload="alert(‘iframe loaded‘)"></iframe>

  这样的代码则能正确执行,window和iframe的onload事件均能正常响应。

  用addEventListener的方式绑定的iframe事件也可以正常运行

 如果是在js中定义的iframe的onload事件,则只有在iframe第一次加载时响应,以后更改iframe的src加载别的页面时都不会再响应了。

  这似乎证明了在js中定义iframe的onload事件实际上定义的是window的onload事件,这样才能解释为何window的事件被覆盖了,

并且只响应一次,因为window确实只加载一次。在Firefox和Chrome中则没有这个问题。

时间: 2024-10-14 17:17:37

window/body/img/iframe 的onload事件的相关文章

iframe之onload事件小记

项目上做了一个具有wizard(向导)功能的菜单导航页面,子页面的引入通过主页面上iframe的src属性切换实现.为了有个良好的交互体验,每次更新iframe的src时,主页面上都显示一个模态的loading效果,等iframe指定的页面加载完后,再通过iframe的onload回调来隐藏loading效果. 常规的代码如下: 点击菜单项时,调用setUrl传入需要载入的子页面url,显示loading效果,页面加载完毕,隐藏loading效果.看起来好像没有什么问题. 由于该项目浏览器兼容性

IE IE8 iframe的onload方法分析 IE浏览器onload事件失效

判断iframe是否加载完成的完美方法 IE 支持 iframe 的 onload 事件,不过是隐形的,需要通过 attachEvent 来注册. 第二种方法比第一种方法更完美(采用readystatechange判断),因为 readystatechange 事件相对于 load 事件有一些潜在的问题. 这里感觉说的并不是完全准确,开始给我造成了很大的困扰.看其代码才明白,真正意义上来讲IE在创建一个新的iframe时的onload方法需要使用attachEvent来绑定,而原来就存在的ifr

【HTML】Iframe中的onload事件

当iframe.src重新指定一个url时会重新执行iframe的onload事件 <iframe id="indexFrame" name="index" width="800" onload='iFrameHeight("indexFrame");' frameborder="0" marginwidth="0" marginheight="0" scrol

google谷歌浏览器iframe中onload

我想要在报表下载时打开一个遮罩,下载响应给客户端的时候关闭遮罩.这个看似简单的简单的功能需求,在google浏览器测试时遇到了阻碍. 我预想的代码大致是这样的: var export= document.getElementById("export");export.width = 0;export.height = 0; export.innerHTML = '<iframe id="frameId"  src ="'+url+'" wi

iframe 动态onload事件处理方式

转自:http://w3help.org/zh-cn/causes/SD9022 标准参考 关于 HTML 4.01 规范中 BODY 标记的 onload 属性说明: http://www.w3.org/TR/html401/struct/global.html#h-7.5.1 关于 HTML 4.01 规范中 onload 内在事件说明:http://www.w3.org/TR/html401/interact/scripts.html#adef-onload 关于 DOM Level2 E

【JS】怎样同一时候处理多个window.onload事件

有时引用其他js时,其js却使用了window.onload事件,这种话,引入的页面的onload事件就有可能执行不了.如何才干两个都执行呢?除了将两个写到一块儿去的方法外,还有其他的方法 if(window.onload!=null){ eval("theOldFun="+window.onload.toString()); window.onload=function(){theOldFun();addReadResource();}; } eval()函数的作用: 它的功能是把相

window onload 与 img onload事件

通常,window.onload就是加载完dom之后执行的.而img就是加载完图片完执行它的onload事件,根据img的src是否加载完成. 因此,看下面代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http

用window的onload事件,窗体加载完毕的时候

1 <script type="text/javascript"> 2 //用window的onload事件,窗体加载完毕的时候 3 window.onload=function(){ 4 $(".views_core_hidden").attr("value",0); 5 } 6 </script>

$(document).Ready()方法 VS OnLoad事件 VS $(window).load()方法

$(document).Ready()方法 VS OnLoad事件 VS $(window).load()方法接触JQuery一般最先学到的是何时启动事件.在曾经很长一段时间里,在页面载入后引发的事件都被加载 在”Body”的Onload事件里.对于Body的Onload事件和JQuery的Ready方法相比,有很多弊端.比如:1.加载 多个函数的问题<body ></body>在Onload事件中 只能这样加载,很丑陋…而在JQuery中你可以利用多个JQuery.Ready()