浏览器事件对象兼容
function func(e){
if(window.event){
e = window.event;
}
}
浏览器中的事件都是以对象的形式存在的,IE浏览器与标准DOM浏览器之间在获取事件对象上不同。
在IE浏览器中事件对象仅是window对象的一个属性event,那么就可以直接在函数中通过window.event访问;而标准的DOM浏览器中规定event对象必须作为一个参数传给事件处理函数,所以利用if语句判断,如果window.event存在,则e就等于window.event,反之,在标准DOM浏览器中,因为window.event是不存在的,它会直接无视掉这句判断,我们就可以直接使用e,比如e.type、e.clientX等等。。。
为了使代码更简便,可以这样写:
if(window.event) e=window.event;
或者三目运算符:
window.event?e=window.event:e;