js window.onload 加载多个函数和追加函数详解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js window.onload 加载多个函数和追加函数详解相关的知识,希望对你有一定的参考价值。

参考技术A 本篇文章主要是对js
window.onload
加载多个函数和追加函数进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助
平时做项目
经常需要使用window.onload,

用法如下:

function
func()alert("this
is
window
onload
event!");return;

window.onload=func;

或者如下:

window.onload=function()alert("this
is
window
onload
event!");return;

但window.onload
不能同时加载多个函数。

比如:

function
t()
alert("t")

function
b()
alert("b")

window.onload
=t
;
window.onload
=b
;

后面会把前面的覆盖,上面代码只会输出
b。

此时可用如下方法解决:
window.onload
=function()

t();
b();


另一种解决方法如下:

代码如下:
function
addLoadEvent(func)


var
oldonload
=
window.onload;//得到上一个onload事件的函数

if
(typeof
window.onload
!=
'function')
//判断类型是否为'function',注意typeof返回的是字符串

window.onload
=
func;


else


window.onload
=
function()


oldonload();//调用之前覆盖的onload事件的函数---->由于我对js了解不多,这里我暂时理解为通过覆盖onload事件的函数来实现加载多个函数

func();//调用当前事件函数






//(完整示例)使用如下:

function
t()
alert("t")

function
b()
alert("b")

function
c()
alert("c")

function
addLoadEvent(func)


var
oldonload
=
window.onload;

if
(typeof
window.onload
!=
'function')


window.onload
=
func;


else


window.onload
=
function()


oldonload();

func();






addLoadEvent(t);
addLoadEvent(b);
addLoadEvent(c);
//等价于
window.onload
=function()

t();
b();
c()
;

个人以为直接使用隐式函数(如:window.onload
=function()

t();
b();
c()
;)更快捷,当然使用
addLoadEvent
更professional,各取所好吧!

JS
window.onload追加函数:

代码如下:
<script>
if(window.attachEvent)//IE:如果浏览器中存在window.attachEvent函数则使用window.attachEvent函数,判断是否是IE还可以使用:if
(document.all)//..
window.attachEvent("onload",function()
alert("add
method"););
else
//FireFox
window.addEventListener("load",function()
alert("add
method");,true);
</script>

运行,js中alert弹出消息,问题解决。

============相关资料================

attachEvent

将指定函数绑定到事件,以便每当该事件在对象上触发时都调用该函数。

Internet
Explorer

5.0
开始提供了一个
attachEvent
方法,使用这个方法,就可以给一个事件指派多个处理过程了。attachEvent
对于目前的
Opera
也适用。但是
Mozilla/Firefox
并不支持这个方法。但是它支持另一个
addEventListener
方法,这个方法跟
attachEvent
差不多,也是用来给一个事件指派多个处理过程的。但是它们指派的事件有些区别,在
attachEvent
方法中,事件是以
“on”
开头的,而在
addEventListener
中,事件没有开头的
“on”,另外
addEventListener
还有第三个参数,一般这个参数指定为
false
就可以了。

以上是关于js window.onload 加载多个函数和追加函数详解的主要内容,如果未能解决你的问题,请参考以下文章

JQuery的ready函数与JS的onload的区别

JQuery的ready函数与JS的onload的区别详解

每日一题_JavaScript.两种方式实现网页加载后onload绑定多个函数?

javascript 窗口加载事件相关问题

window.onload和$的区别介绍

JS window,onload 与 $().read()