论坛首页 Web前端技术论坛

关于onload调用多个函数的认识

浏览 6006 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2012-08-11  

首先说一下onload的一个特点:只能有一个onload执行。这就要求我们不能通过onload="function()"来调用多个函数。

这里通过查找到的资料,有这种方式:

<script>
	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();
			alert(oldonload);//这是添加的测试代码
			func();
			}
		}
	}
addLoadEvent(t);
addLoadEvent(b);
addLoadEvent(c);
</script>	

 这里的alert(oldonload)详细记录了函数内部发生的变化:

 addLoadEvent(t)执行后会包含t()函数,addLoadEvent(b)会包含t(),b()函数,addLoadEvent(c)却包含了      t(),b(),c()三个函数。

但是到了最后,只有addLoadEvent(c)才可以通过window.onload产生执行的函数效果。

   发表时间:2012-08-13  
没听说过addEventListener?
0 请登录后投票
   发表时间:2012-08-13  
xingqiliudehuanghun 写道
没听说过addEventListener?

我也是菜鸟,只是讨论一下上诉方法的工作方式
0 请登录后投票
   发表时间:2012-08-14  
看看jQuery的ready()的实现吧
0 请登录后投票
   发表时间:2012-08-14  
IE8, Chrome21, Opera12测试完全没问题...
0 请登录后投票
   发表时间:2012-08-14  
guanlicome 写道
看看jQuery的ready()的实现吧

最近要开始好好学JQuery了
0 请登录后投票
   发表时间:2012-08-14  
bradwoo8621 写道
IE8, Chrome21, Opera12测试完全没问题...

工作是做测试的么
0 请登录后投票
   发表时间:2012-08-14  
《javascriot dom 编程艺术》里的一个函数。
0 请登录后投票
   发表时间:2012-08-15  
《javascriot dom 编程艺术》里的一个函数。
0 请登录后投票
   发表时间:2012-09-04  
akon405 写道
bradwoo8621 写道
IE8, Chrome21, Opera12测试完全没问题...

工作是做测试的么


不是, 不过习惯了先拿来测试下
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics