码迷,mamicode.com
首页 > Windows程序 > 详细

window.onload用法

时间:2016-08-10 00:53:12      阅读:268      评论:0      收藏:0      [点我收藏+]

标签:

  网页中的javaScript脚本代码往往需要在html文档加载完成后才能够去执行,否则可能导致无法获取对象的情况,为了避免这种情况的发生,可以使用以下两种方式:

  • 将脚本代码放在网页的底端即在</body>之前,这样在运行脚本代码的时候,可以确保DOM已经加载完成。
  • 在window.onload方法中执行操作相应的脚本

可以用下面这种方式将一个方法传给window.onload:

1  window.onload = fun1;
2   function fun1(){
3     alert("fun1");
4   }

 

 

 

  假设需要执行2个方法或者更多方法,我们尝试用上面方法:

1   window.onload = fun1;
2   window.onload = fun2;
3   function fun1(){
4     alert("fun1");
5   }
6   function fun2(){
7     alert("fun2");
8   }

 

 

   发现页面只弹出了“fun2”的提示框,证明window.onload方法具有覆盖性。

  如何解决这个问题呢?首先定义一个带一个参数的方法,参数类型为function类型,变量保存之前onload方法,然后判断其类型,如果其类型不等于function类型,说明此时为window.onload第一次被方法赋值(window.onload初始类型为Object,被方法赋值后其类型变为function),否则重新赋值windos.onload一个匿名方法,方法体里面首先执行原onload中的代码,然后执行传入方法。

  

 1   onLoadlistener(fun1);
 2 
 3   onLoadlistener(fun2);
 4 
 5   onLoadlistener(fun3);
 6 
 7   function fun1(){
 8     alert("fun1");
 9   }
10 
11   function fun2(){
12     alert("fun2");
13   }
14 
15   function fun3(){
16     alert("fun3");
17   }
18 
19   function onLoadlistener(func){
20       var oldonLoad=window.onload;
21       if(typeof oldonLoad !="function") {
22           window.onload=func;
23       }else{
24           window.onload=function(){
25             oldonLoad();
26             func();
27           }
28       }
29   }

 

 

 

 依次输出 "fun1"、"fun2"、"fun3",此方法会按照添加function的顺序执行。

 

window.onload用法

标签:

原文地址:http://www.cnblogs.com/zzq77/p/20160809_window_load.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!