浅谈window.attachEvent

转载 2013年12月03日 10:28:55

以前写 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 就可以了。 

因此要想在你的程序中给一个事件指派多个处理过程的话,只要首先判断一下浏览器,然后根据不同的浏览器,选择使用 attachEvent 还是 addEventListener 就可以了。实例如下:

 

            if (window.attachEvent) {  
                window.attachEvent("onload", remove);  
            } else if (window.addEventListener) {  
                window.addEventListener("load", remove, false);    
            }              
            function remove() {  
                var div = document.getElementById("divprogressbar");  
                document.body.removeChild(div);  
            } 

注意:attachEvent 所指派的多个过程的执行顺序是随机的,所以这几个过程之间不要有顺序依赖。另外 attachEvent 和 addEventListener 不仅仅适用于 window 对象,其他的一些对象也支持该方法。

相关文章推荐

ie attachEvent this代表window

解决IE中attachEvent函数的this指针问题绑定事件,IE使用attachEvent,FF使用addEventListener,除了函数名、参数的不同,还有个关于this指针的差异。在FF中...

js中window.createPopup()方法以及attachEvent("onmouseover",OverFuncOne)实例

Internet Explorer 5.5支持一个新的window对象的方法:creatPopup()。你可以向下面一样创建一个弹出窗口:   var popupObj = window.cr...

Window内部机制浅谈

本文主要是通过源码介绍Window的添加、删除、更新的过程,内容中有不正确的地方,还请各位看客指出。...

浅谈window.sidebar和document.all

一、Window.sidebar简介 是一种文档对象模型,返回侧边栏的对象,其中包含浏览器加载项注册的几种方法   例子:window.sidebar.addPanel(”360安全中心”,ht...

浅谈window对象和document对象

1、window:代表浏览器中一个打开的窗口。 (1)对象属性 ① window.self 引用本窗口window==window.self ② window.name 为窗口名字 ③ win...

浅谈JavaScript中的window.onload方法和JQuery中的$(document).ready()方法

浅谈JavaScript中的window.onload方法和JQuery中的$(document).ready()方法

浅谈获取DOM跨域的解决方案——document.domain、window.name、window.postMessage

如果两个网页不同源,就无法拿到对方的DOM。典型的例子是iframe窗口和window.open方法打开的窗口,它们与父窗口无法通信。 获取DOM的跨域解决方案: (1)如果两个窗口一级域名相同...

浅谈虚拟现实系统的输入设备

  • 2016年12月13日 14:47
  • 1.65MB
  • 下载

个人学习的浅谈handler

  • 2016年08月16日 19:50
  • 1.67MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:浅谈window.attachEvent
举报原因:
原因补充:

(最多只允许输入30个字)