js中优化window.onload使页面完成时同时加载多个函数
2016-09-22 15:33
525 查看
window.onload在js中很常用,但是有一个弊端,只会在完成内容时加载一次,如果同时使用两次window.onload,则后面的会覆盖前面的从而只实现一个函数。
为了解决这个问题可以这么做:
1、可以先创建一个匿名函数来容纳这两个函数,然后把那个匿名函数绑定到onload事件上,代码如下:
当需要绑定的函数不是很多时,这应该是最简单的解决方案。
2、当你打算在页面加载完毕时执行多个函数,这里有个更好的解决方案,这个方案需要额外编写一些代码,但好处是一旦有了那些代码,把函数绑定到window.onload事件就非常容易了。
这个函数的名字是addLoadEvent,它是由Simon Willison编写的。它只有一个参数:打算在页面加载完毕时执行的函数的名字。
下面是addLoadEvent函数将要完成的操作。
把现有的window.onload事件处理函数的值存入变量oldonload。
如果在这个处理函数上还没有绑定任何函数,就像平时那样把新函数添加给它。
如果在这个处理函数上已经绑定了一些函数,就把新函数追加到现有指令的末尾。
addLoadEvent函数代码如下:
这将把那些在页面加载完毕时执行的函数创建为一个队列。
为了解决这个问题可以这么做:
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(); } } }
这将把那些在页面加载完毕时执行的函数创建为一个队列。
相关文章推荐
- 页面加载完成之后执行js函数window.onload 和 $().ready(function) 以及 <body onload="">的同级函数详解
- js window.onload 加载多个函数
- js window.onload 加载多个函数的方法
- window.onload加载js函数不起作用
- js window.onload 加载多个函数和追加函数详解
- js window.onload 加载多个函数的方法
- JS 页面加载触发事件 document.ready和window.onload的区别
- 解析页面加载与js函数的执行 onload or ready
- JS 页面加载触发事件 document.ready和window.onload的区别
- js window.onload 加载多个函数和追加函数
- js window.onload 加载多个函数
- js window.onload 加载多个函数
- js window.onload 加载多个函数和追加函数
- js window.onload 加载多个函数和追加函数
- JS中页面加载事件window.onload、onload()、document.onclick
- js window.onload 加载多个函数和追加函数
- js window.onload 加载多个函数和追加函数
- JS 页面加载触发事件 document.ready和window.onload的区别
- jquery页面加载响应事件$(document).ready()与js页面加载响应事件window.onload()的区别