具体需求:
1. 为网页加载后触发的onload事件绑定多个执行函数
实现思路:
1. 可直接给onload绑定一个匿名函数,匿名函数内部调用多个函数
2. 可自定义个函数,首先保存之前window.onload的值,然后判断window.onload的类型是否为function,如果不是就让window.onload的值设置为自定义的函数,否则就先执行window.onload之前绑定的函数,然后在执行自定义的函数
具体代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<script type="text/javascript">
function func1(){
alert(/(?:function)([^\(]+)/.exec(arguments.callee)[1])
}
function func2(){
alert(/(?:function)([^\(]+)/.exec(arguments.callee)[1])
}
// 方法一, 给onload绑定一个匿名函数,在匿名函数内部调用多个函数
window.onload = function(){
func1()
func2()
}
// 方法二, 定义一个函数来接受要绑定的方法,判断window.onload当前值来加载执行
function addOnLoadEvent(func){
var oldOnLoad = window.onload
if(typeof window.onload == ‘function‘){
window.onload = function(){
oldOnLoad()
func()
}
}else{
window.onload = func
}
}
addOnLoadEvent(func1)
addOnLoadEvent(func2)
</script>
</body>
</html>
总结说明:
1. 强烈推荐第二种更加灵活的方式来创建多函数绑定,其实此方法还可以支持大多数内置事件处理方法,但是一定要注意的是一定要将函数赋值给window.onload,千万不要直接调用,不然会出现意想不到的结果.
本文出自 “ζ自动化运维开发之路ζ” 博客,请务必保留此出处http://xmdevops.blog.51cto.com/11144840/1854704
每日一题_JavaScript.两种方式实现网页加载后onload绑定多个函数?
原文:http://xmdevops.blog.51cto.com/11144840/1854704