您的位置:首页 > Web前端 > JavaScript

js中优化window.onload使页面完成时同时加载多个函数

2016-09-22 15:33 525 查看
window.onload在js中很常用,但是有一个弊端,只会在完成内容时加载一次,如果同时使用两次window.onload,则后面的会覆盖前面的从而只实现一个函数。

为了解决这个问题可以这么做:

1、可以先创建一个匿名函数来容纳这两个函数,然后把那个匿名函数绑定到onload事件上,代码如下:

window.onload = function() {
firstFunction();
secondFunction();
}


当需要绑定的函数不是很多时,这应该是最简单的解决方案。

2、当你打算在页面加载完毕时执行多个函数,这里有个更好的解决方案,这个方案需要额外编写一些代码,但好处是一旦有了那些代码,把函数绑定到window.onload事件就非常容易了。

这个函数的名字是addLoadEvent,它是由Simon Willison编写的。它只有一个参数:打算在页面加载完毕时执行的函数的名字。

下面是addLoadEvent函数将要完成的操作。

把现有的window.onload事件处理函数的值存入变量oldonload。

如果在这个处理函数上还没有绑定任何函数,就像平时那样把新函数添加给它。

如果在这个处理函数上已经绑定了一些函数,就把新函数追加到现有指令的末尾。

addLoadEvent函数代码如下:

function addLoadEvent(func) {
var oldonload = window.onload;
if (typeof window.onload != 'function') {
window.onload = func;
} else {
window.onload = function() {
oldonload();
func();
}
}
}


这将把那些在页面加载完毕时执行的函数创建为一个队列。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: