在ie中,事件传播的时候,生成的事件对象会绑定到全局的window上
而在其他浏览器中,事件对象将会是一个局部变量,传到方法中
1
2
3
4
5
6
7
|
var
btn = document.getElementById(
'btn'
);
//一个按钮
btn.onclick =
function
(event){
//给btn绑定一个点击事件
//其他浏览器会在点击发生的时候,把事件对象当作参数传递过来
alert(
'其他浏览器:'
+ event);
//在ie浏览器中,这个event变量是空,它会在全局的window上
alert(
'ie浏览器:'
+ window.event);
}
|
这样在处理的时候,为了统一处理event对象,就需要区别出来ie和别的浏览器
而在ie中的document对象有一个all属性,里面存放了页面中所有的标签
在其他浏览器中是没有这个属性的,所以,可以用document.all来判断是否为ie浏览器
然后进行event处理
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
var
btn = document.getElementById(
'btn'
);
btn.onclick =
function
(event){
//给btn绑定一个点击事件
//这里用一个三元表达式来做简单判断,如果存在document.all那么使用window.event
//否则就直接用event
var
ev = document.all ? window.event : event;
alert(ev);
}
//这个写法可以稍微简单一些
btn.onclick =
function
(event){
//直接用这个判断,如果存在event对象,则直接用他,否则用window.event
var
ev = event || window.event;
alert(ev);
}
|