window.attachevent的两个参数中,
1.其中第一个参数:
window的事件(如:onblur,οnerrοr=,onfocus,onload,onresize,onunload,等),这个可在Dw中通过中在<body>中输入on下拉出来的几个内容.
2.第二个参数:是方法,即触发了什么事件.
例子:window.attachEvent('onblur',setuser)
则表示:页面中,当发生onblur时,则执行setuser事件.
以前写 JavaScript 脚本时,事件都是采用
object.event = handler;
的方式初始化。这种方式对于 InternetExplorer、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中的5种事件使用方式解说(转)
为组件提供事件处理入口,可以极大的提高组件的封闭性,同时又能让组件很好的和外界通信。并且这也是我们已经习惯使用的一种开发模式,.NET、DHTML等都提供了一套完整的事件处理模型。下面是关于使用DHTML中事件的一个总结。
1、Inline HTML: <ELEMENTonXXX='handler'></ELEMENT>
这是最简单最常用的事件绑定方式,不过这里onXXX的值为handler是不太确切的说法。其实这个handler的位置可以放置任何合法的 JavaScript语句,因为IE在生成DHMTL树时会为当前Element构建一个'匿名'成员方法,onXXX指向这个方法的handler。比如我们写下,<element id='elmt' onXXX='var abc =0; for ( var i=0 ; i < 100; i++ ) abc+=i;'></element>,实际上在DHMTL树种存在如下代码结构:function anonymous()
{
var abc =0; for ( var i=0 ; i < 100 ; i++ ) abc+=i;
}
此时anonymous方法中的this就是elmt对象。
elmt.onXXX = function() { return false; }
3、NamedScript: <SCRIPT FOR = object EVENT = onclick>
1、 attachEvent method:
使用方法:bSuccess= object.attachEvent(sEvent, fpNotify)。解释就抄msdn了
window.attachEvent('onload', handler1);
window.attachEvent('onload', handler2);
window.attachEvent('onload', handler3);
window.attachEvent('onload', handlerN);
http://hi.baidu.com/sunblackshine/blog/item/8f928ac577c3e9a18326ac78