以前写JavaScript脚本时,事件都采用object.event = handler的方式绑定。这种方式对于Internet Explorer、Mozilla/Firefox和Opera来说很通用。但有一个问题,这种方式只能一个事件对应一个事件处理过程。如果希望一个事件可以依次执执行多个处理过程,就不好用了。
Internet Explorer从5.0开始,提供了一个attachEvent方法,使用这个方法,可以一个事件,绑定多个处理过程。但是Mozilla/Firefox并不支持这个方法,它使用另外一个方法addEventListener。它们之间有少许区别,在attachEvent方法中,事件是以"on"开头的,而addEventListener,事件不是以"on"开头,另外,addEventListener还有第三个参数,一般指定false就可以。
因此,在程序中,给一个事件指派多个处理过程的话。需要根据不同的浏览器,选择使用attachEvent和addEventListener。示例如下:
if (window.attachEvent) {
window.attachEvent("onload", foo);
} else if (window.addEventListener) {
window.addEventListener("load", foo, false);
}
function foo() {
alert("ok");
}
分享到:
相关推荐
### IE11没有window.attachEvent方法处理方法 在Web开发过程中,我们经常需要处理各种浏览器兼容性问题。其中,Internet Explorer(简称IE)一直是开发者关注的重点之一,尤其是IE10及以下版本。随着技术的发展,IE...
这时就要用window.attachEvent和window.addEventListener来解决一下。 下面是一个解决方法。至于attachEvent和addEventListener的用法,可以自己Google或百度一下。 代码如下: if (document.all){ window....
在JavaScript中,`attachEvent` 和 `addEventListener` 是两种用于为元素添加事件处理程序的方法,主要在Internet Explorer和非IE浏览器(遵循W3C标准)中使用。它们都是用来监听和响应用户或浏览器的特定行为,如...
总之,解决`self.attachevent is not a function`错误的关键在于理解`attachEvent`和`addEventListener`的区别,并通过条件判断或者使用库来实现跨浏览器的兼容性。同时,对于事件处理的模式选择,应根据实际需求和...
部分代码如下: Author:sohighthesky ... *Date:2009-11-9 */ /* *box 指定要显示消息框或者其id ... if(window.addEventListener)window.addEventListener(e,call,false); else window.attachEvent("on"+e,call); },
对于非IE,使用`addEventListener`和`dispatchEvent`。 5. 提交表单后,从文档中移除这个临时创建的表单。 在提供的代码中,`openPostWindow`函数就是实现这一过程的。它接收URL、窗口名以及需要传递的参数作为输入...
DOM2级事件还引入了一系列新的事件类型,如`onblur`、`onfocus`、`onchange`等,以及与鼠标和键盘相关的事件,这些事件可以配合`addEventListener`进行处理,使得JavaScript能够更精确地响应用户操作。 总的来说,`...
attachEvent方法 按钮onclick addEventListener方法 按钮click 两者使用的原理:可对执行的优先级不一样,下面实例讲解如下: attachEvent方法,为某一事件附加其它的处理事件。(不支持Mozilla系列) ...
- 另一个判断IE的方法是通过判断window对象是否存在addEventListener或attachEvent属性,这两者分别用于现代浏览器和旧版IE浏览器的事件处理。 - browerType函数通过分析userAgent字符串来判断用户的设备类型,比如...
理解并熟练运用`contentWindow`、`contentDocument`、`attachEvent`、`addEventListener`以及`postMessage`等技术,是解决这类问题的关键。同时,时刻关注浏览器的更新和安全策略的变化,以便及时调整代码以确保良好...
在JavaScript中,`window.js`通常是一个用于处理与浏览器窗口或页面交互的脚本...然而,为了提高代码质量和浏览器兼容性,需要更新一些过时的方法,如替换`eval`和`attachEvent`,并考虑使用更现代的JavaScript特性。
本文将探讨在 Internet Explorer (IE) 和 Firefox (FF) 浏览器中处理事件的方法,特别关注 `attachEvent` 和 `addEventListener` 的使用。 #### 二、事件处理概述 在 JavaScript 中,事件是指由用户或浏览器引发的...
在IE6和IE7浏览器中,因为不支持addEventListener()方法,可以使用attachEvent()作为替代。同时需要注意的是,为了安全,应当检查event.origin是否是可信的源。 window.postMessage()方法的优点是强大且灵活,但是...
在JavaScript中,`addEventListener`和`attachEvent`都是用于向元素添加事件监听器的方法,但它们之间存在一些关键差异,特别是在处理`this`关键字时。`addEventListener`是W3C标准的一部分,被大多数现代浏览器支持...
这种方法是通过动态创建HTML表单(form)元素,设置其属性,并利用`attachEvent`或`addEventListener`来触发表单的提交。首先,创建一个临时的表单元素,设置其方法为POST,动作为目标URL,以及一个隐藏的输入字段来...
关于用脚本设置onload事件句柄 ... [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]关于用脚本绑定事件句柄 IE 下用 attachEvent, FF 下用 addEventListener相关讨论如下:http://search.blueidea.com/?q=addE
对于旧版本的Internet Explorer(如IE6),事件处理方式有所不同,需要使用`attachEvent`和`detachEvent`代替`addEventListener`和`removeEventListener`。此外,IE6不支持`style.getPropertyValue`,需要使用`...