JS:attachEvent和addEventListener 使用方法
attachEvent方法,为某一事件附加其它的处理事件。(不支持Mozilla系列)
addEventListener方法 用于 Mozilla系列
举例:
document.getElementById(
"
btn
"
).onclick
=
method1;
document.getElementById(
"
btn
"
).onclick
=
method2;
document.getElementById(
"
btn
"
).onclick
=
method3;
如果这样写,那么将会只有medhot3被执行
写成这样:
var
btn1Obj
=
document.getElementById(
"
btn1
"
);
//
object.attachEvent(event,function);
btn1Obj.attachEvent(
"
onclick
"
,method1);
btn1Obj.attachEvent(
"
onclick
"
,method2);
btn1Obj.attachEvent(
"
onclick
"
,method3);
执行顺序为method3->method2->method1
如果是Mozilla系列,并不支持该方法,需要用到addEventListener
var
btn1Obj
=
document.getElementById(
"
btn1
"
);
//
element.addEventListener(type,listener,useCapture);
btn1Obj.addEventListener(
"
click
"
,method1,
false
);
btn1Obj.addEventListener(
"
click
"
,method2,
false
);
btn1Obj.addEventListener(
"
click
"
,method3,
false
);
执行顺序为method1->method2->method3
使用实例:
1
。
var
el
=
EDITFORM_DOCUMENT.body;
//
先取得对象,EDITFORM_DOCUMENT实为一个iframe
if
(el.addEventListener)
{
el.addEventListener(
'
click
'
, KindDisableMenu,
false
);
}
else
if
(el.attachEvent)
{
el.attachEvent(
'
onclick
'
, KindDisableMenu);
}
2
。
if
(window.addEventListener)
{
window.addEventListener(
'
load
'
, _uCO,
false
);
}
else
if
(window.attachEvent)
{
window.attachEvent(
'
onload
'
, _uCO);
}
addEventListener方法 用于 Mozilla系列
举例:



写成这样:





如果是Mozilla系列,并不支持该方法,需要用到addEventListener





使用实例:














看看gmail的代码
var Ka = navigator.userAgent.toLowerCase();
var rt = Ka.indexOf("opera")!=-1;
var r = Ka.indexOf("msie")!=-1&&(document.all&&!rt);
function Zl(a,b,c){
var Ka = navigator.userAgent.toLowerCase();
var rt = Ka.indexOf("opera")!=-1;
var r = Ka.indexOf("msie")!=-1&&(document.all&&!rt);
function Zl(a,b,c){
if(r){
a.attachEvent("on"+b,c)}
else{
a.addEventListener(b,c,false)}}