js动态添加onload、onresize、onscroll事件的另类方法

发布时间:2019-09-22编辑:脚本学堂
介绍:window 的 onload、onresize、onscroll 事件,跟其他的事件不一样,它不能用 attachEvent 或 addEventListener 来添加。

介绍:
window 的 onload、onresize、onscroll 事件,跟其他的事件不一样,它不能用 attachEvent 或 addEventListener 来添加。

也就是说,它只能这样来(以 onload 为例,下同):
 

复制代码 代码如下:
window.onload = function()
{
// ...
};

但有个问题,如果再为 onload 增加新的事件处理程序时,不能直接为 window.onload 赋值了,否则前面的赋值就会被覆盖了。

可以这样操作:
 

复制代码 代码如下:
var oldLoadHandler = window.onload;
window.onload = function()
{
if (oldLoadHandler)
{
oldLoadHandler();
}
newLoadHandler();
};

在 ezj 中,就要方便多了:
 

复制代码 代码如下:
$(window).ready(onloadHandler1);
$(window).ready(onloadHandler2);

小结:
一般接触的 onload 事件是 document.body.onload,但这实际上是由于 IE 的误导,正确的解释是:window.onload,window.onload 在 IE、Firefox、Chrome 中均有效。