window. 是指当页面加载完后执行的函数 但是这个函数有个缺点 就是不能执行多个window.onload 当第二次调用window. 第二次会覆盖第一次的函数  如下代码:

 


  1. <style> 
  2. .small{ width:100px;height:100px;border:2px solid red; background:#906;}  
  3. .big{ width:200px; height:200px;border:2px solid red; background:#906;}  
  4. </style> 
  5. <div id="small" class="small">aaaa</div> 
  6.     <script> 
  7. window.onload = initAll;  
  8.         function initAll(){  
  9.             var oo = document.getElementById("small");  
  10.             oo.onclick = toBig;  
  11.             function toBig(){  
  12.                 oo.className = "big";  
  13.                 oo.onclick = tosmall;     
  14.             }     
  15.             function tosmall(){  
  16.                 oo.className = "small";  
  17.                 oo.onclick = toBig;   
  18.             }  
  19.         }  
  20.         </script> 

这上面的js代码  我是测试 一张图片时候 图片变大 当我再点击时候 图片变小类似效果!改变他们的类!但是当我底部又有一个window. 就是第二次的window. 就会覆盖第一次的 比如<script>window. function(){alert(1)}</script>  都可以测试下,但是现在的问题是该怎么解决这个问题呢!恩 可以先判断下 看看上面是否已经定义了这个函数 如果定义的话 那么我让他先保存一个变量中,然后当执行下个函数时候 再去执行它!这样就可以二个函数一起执行呢!1 先判断下 如下代码:

 


  1. <script>  
  2.     var temp ;  
  3.     //window.  
  4.     if(typeof window.onload == "function"){  
  5.         //让当前的函数保存在一个变量中      
  6.         temp = window.  
  7.     }  
  8.     window.onload = function(){  
  9.         //那么现在我想不但要想执行我这个当前的函数 那么上面的函数也要执行到 所以要调用下上面的函数  
  10.         alert("我是最后一次执行到");  
  11.         temp();   
  12.     }  
  13.     //上面的代码都可以执行到  但是现在我们要封装一个方法 addEvent  
  14.    </script>  --> 

但是如果页面上有多个这样的事件监听函数时候 我们用这种方式 也并不是很方便 我们可以先封装一个函数 然后再调用它 ! 这个函数定义三个参数 第一个是“当前的对象obj” 第二个是"evt 事件类型",第三个是函数"fn",定于代码如下:

 


  1. <script>  
  2. // window.  
  3.   function addEvent(obj,evt,fn){  
  4.         //  现在要想的问题是 要给某个对象注册多次事件监听函数    
  5.         //检测当前的事件是否存在  
  6.         var saved;  
  7.         iftypeof obj["on" + evt] =="function"){  
  8.             saved = obj["on" + evt];      
  9.         }  
  10.         obj["on"+evt] = function(){  
  11.             if(saved) saved();  
  12.             fn();     
  13.         }  
  14.     }  
  15. </script> 

综合上面的所示:

 


  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
  2. <html xmlns="http://www.w3.org/1999/xhtml"> 
  3. <head> 
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
  5. <title>无标题文档</title> 
  6. <style> 
  7. .small{ width:100px;height:100px;border:2px solid red; background:#906;}  
  8. .big{ width:200px; height:200px;border:2px solid red; background:#906;}  
  9. </style> 
  10. <script> 
  11. // window.onload = initAll;  
  12.   function addEvent(obj,evt,fn){  
  13.         //  现在要想的问题是 要给某个对象注册多次事件监听函数    
  14.         //检测当前的事件是否存在  
  15.         var saved;  
  16.         if( typeof obj["on" + evt] =="function"){  
  17.             saved = obj["on" + evt];      
  18.         }  
  19.         obj["on"+evt] = function(){  
  20.             if(saved) saved();  
  21.             fn();     
  22.         }  
  23.     }  
  24. </script> 
  25.  
  26. </head> 
  27.  
  28. <body> 
  29.     <div id="small" class="small">aaaa</div> 
  30.     <script> 
  31.         function initAll(){  
  32.             var oo = document.getElementById("small");  
  33.             oo.onclick = toBig;  
  34.             function toBig(){  
  35.                 oo.className = "big";  
  36.                 oo.onclick = tosmall;     
  37.             }     
  38.             function tosmall(){  
  39.                 oo.className = "small";  
  40.                 oo.onclick = toBig;   
  41.             }  
  42.         }  
  43.         addEvent(window,"load",initAll);  
  44. </script> 
  45.  <!--    <script> 
  46.         var temp ;  
  47.         //window.onload = function(){} //这样的话会覆盖掉上面的函数 那么现在的问题是应该我们检测下 是否已经给某个对象注册了事件  
  48.         if(typeof window.onload == "function"){  
  49.             //让当前的函数保存在一个变量中      
  50.             temp = window.  
  51.         }  
  52.         window.onload = function(){  
  53.             //那么现在我想不但要想执行我这个当前的函数 那么上面的函数也要执行到 所以要调用下上面的函数  
  54.             alert("我是最后一次执行到");  
  55.             temp();   
  56.         }  
  57.         //上面的代码都可以执行到  但是现在我们要封装一个方法 addEvent  
  58.     </script>  --> 
  59.     <script> 
  60.         function test(){  
  61.             alert(1);     
  62.         }  
  63.         addEvent(window,"load",test);  
  64.     </script> 
  65.       
  66. </body> 
  67. </html> 

像上面这样运行代码 可以给某个对象注册多个监听函数!