JavaScript执行多个处理过程的方法
来源:互联网 发布:odn网络结构 编辑:程序博客网 时间:2024/06/05 07:03
以前写 JavaScript 脚本时,事件都是采用
但是 Internet Explorer 从 5.0 开始提供了一个 attachEvent 方法,使用这个方法,就可以给一个事件指派多个处理过程了。attachEvent 对于目前的 Opera 也适用。但是问题是 Mozilla/Firefox 并不支持这个方法。但是它支持另一个 addEventListener 方法,这个方法跟 attachEvent 差不多,也是用来给一个事件指派多个处理过程的。但是它们指派的事件有些区别,在 attachEvent 方法中,事件是以 “on” 开头的,而在 addEventListener 中,事件没有开头的 “on”,另外 addEventListener 还有第三个参数,一般这个参数指定为 false 就可以了。
因此要想在你的程序中给一个事件指派多个处理过程的话,只要首先判断一下浏览器,然后根据不同的浏览器,选择使用 attachEvent 还是 addEventListener 就可以了。实例如下:
注意:attachEvent 所指派的多个过程的执行顺序是随机的,所以这几个过程之间不要有顺序依赖。另外 attachEvent 和 addEventListener 不仅仅适用于 window 对象,其他的一些对象也支持该方法。
另外为了方便我也写了个function sunet_addEvent(obj, evType, fn),如下:
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 (document.all) {
window.attachEvent('onload', handler1);
window.attachEvent('onload', handler2);
}
else {
window.addEventListener('load', handler1, false);
window.addEventListener('load', handler2, false);
}
注意:attachEvent 所指派的多个过程的执行顺序是随机的,所以这几个过程之间不要有顺序依赖。另外 attachEvent 和 addEventListener 不仅仅适用于 window 对象,其他的一些对象也支持该方法。
另外为了方便我也写了个function sunet_addEvent(obj, evType, fn),如下:
function sunet_addEvent(obj, evType, fn)
{
if (obj.addEventListener){
obj.addEventListener(evType, fn, false);
return true;
}else if (obj.attachEvent){
var r = obj.attachEvent("on"+evType, fn);
return r;
}else{
return false;
}
}
// 调用例子:sunet_addEvent(window,"locad",init);
- JavaScript执行多个处理过程的方法
- JavaScript执行window.onload和body onload多个处理过程的方法
- JavaScript执行window.onload和body onload多个处理过程的方法
- JavaScript方法执行过程
- java方法调用过程解析和执行--编译器的处理
- JavaScript 函数的执行过程
- 9个必须掌握的Javascript处理数组的方法
- 多个委托方法的顺序执行
- 并发执行多个程序的方法
- getBean方法的执行过程
- 执行存储过程的方法
- 构造方法的执行过程
- javascript 匿名函数的执行过程
- Javascript的执行过程详细研究
- 游览器中javascript的执行过程
- 浏览器中javascript的执行过程
- 浏览器中javascript的执行过程
- 浏览器中javascript的执行过程
- 代替测试用例的检查表-但不要作为偷懒的借口(转帖学习)
- C++中有了malloc/free,为什么还需要new/delete?
- IOC小述。。。
- 关于广告防止作弊行为的处理
- ZFS,XFS,and EXT4 filesystems compared
- JavaScript执行多个处理过程的方法
- 可重入函数与不可重入函数
- 木马图片的问题
- 说说C#的静态构造函数
- 空指针和迷途指针的区别
- Oracle PL/Sql循序渐进全面学习教程
- 产品研发过程方面的思考
- 在ASP.NET应用程序中使用身份模拟(Impersonation)
- C和C++编程和学习文档