window.attachEvent window.onload

<html>  
  <script>  
      window.attachEvent("onload",function(){alert('attach1')})  
      window.attachEvent("onload",function(){alert('attach2')})  
  </script>  
  <script>function   window.onload(){alert('window.onload')}</script>  
  <script>               alert('normal.1')     </script>  
  <script   defer>   alert('defer1')</script>  
  <script   defer>   alert('defer2')</script>  
  <script>               alert('normal.2')     </script>  
    
  <SCRIPT   event=onload   for=window   language=JavaScript>  
  alert('eventfor...')  
  </SCRIPT>  
    
  <body     οnlοad="javascript:alert('body   οnlοad=...')">  
     
  </body>  
  </html>  
    
  <script>alert('the   last   one')</script>  


<script>window.οnlοad=function(){alert('window.οnlοad=')}</script>  
  首先看下attachEvent这个函数  
  JavaScript执行多个处理过程的方法  
  以前写   JavaScript   脚本时,事件都是采用object.event   =   handler;的方式初始化。这种方式对于   Internet   Explorer、Mozilla/Firefox   和   Opera   来说很通用。但是有一个问题就是,这种方式只能一个事件对应一个事件处理过程。如果希望一个事件可以依次执行多个处理过程就不好用了。  
    
  但是   Internet   Explorer   从   5.0   开始提供了一个   attachEvent   方法,使用这个方法,就可以给一个事件指派多个处理过程了。attachEvent   对于目前的   Opera   也适用。但是问题是   Mozilla/Firefox   并不支持这个方法。但是它支持另一个   addEventListener   方法,这个方法跟   attachEvent   差不多,也是用来给一个事件指派多个处理过程的。但是它们指派的事件有些区别,在   attachEvent   方法中,事件是以   “on”   开头的,而在   addEventListener   中,事件没有开头的   “on”,另外   addEventListener   还有第三个参数,一般这个参数指定为   false   就可以了。  
  然后看下  
  <SCRIPT   event=onload   for=window   language=JavaScript>  
  alert('eventfor...')  
  </SCRIPT>  
  这个(以下简称第1种),这个应该和<script>window.οnlοad=function(){alert('window.οnlοad=')}</script>(以下简称第2种)、<body   onload>(以下简称第3种)这三个是一致的,只是那个在代码中把onload方法重写了下,所以只弹出eventfor,如果我们把第一种方法干掉,那么就会弹出第三种的结果了也就是说如果有了第1种的情况下,并且也包含第2种或第三种的情况下,第一种会被覆盖掉  
  还有两个defer的执行顺序,和两个attachEvent之间的顺序  
  我想这个应该是遇到了这两个东西就压入栈中,应该是这种实现方式,所以后写的会先执行,并且可以处理多个。 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值