您的位置:首页 > Web前端 > javascript > 正文

火狐和IE的window.event的区别

更多 时间:2013-12-30 类别:Web前端 浏览量:5096

火狐和IE的window.event的区别

火狐和IE的window.event的区别

一、event对象

 

IE 中可以直接使用 window.event 对象,而 FF 中则不可以,解决方法之一如下:


var theEvent = window.event || arguments.callee.caller.arguments[0];

第二种是将 event 作为参数来传递:


function test(event) {
var event = event || window.event;
//do Something
}

 

 

二、关于IE下的event.srcElement和火狐下的event.target


火狐下的e.target相当于ie下的event.srcElement,表示产生事件的源。

 

例子:

document.onclick = function(e){
var theEvent = window.event || e;
var srcElement = theEvent.srcElement;
if (!srcElement) {
srcElement = theEvent.target;
}

}

 

三、event.keyCode 和event.which

 

Mozilla下的event.which与IE下的event.keyCode相当。

 

 

代码:

  •  
  • JScript 代码   复制
  • 
    //IE
    <input type="text" nkeypress="doIt()">
    <script language="javascript">
     function doIt()
     {
       alert(event.keyCode);
     }
    </script>
    
    //火狐
    <input type="text" nkeypress="doIt(event)">
    <script language="javascript">
     function doIt(oEvent)
     {
       alert(oEvent.which)
     }
    </script>
    
    		
  •  

    四、event.x,event.y[IE]和event.pageX,event.pageY[Moz]


    IE中取鼠标点击的绝对位置,使用event对象的event.x和event.y
    Moz中取鼠标点击的绝对位置,使用event对象的event.pageX和event.pageY
    所以为了兼容,需要自己做处理

     

    五、event.offsetX,event.offsetY[IE]和event.pageX,event.pageY[Moz]


    IE中取鼠标点击的相对位置,使用event对象的event.offsetX和event.offsetY
    Moz中取鼠标点击的相对位置,使用event对象的event.layerX和event.layerY
    所以为了兼容,需要自己做处理,

     

    六、事件绑定


    事件绑定上Mozilla用addEventListener,removeEventListener
    对应IE的attachEvent,detatchEvent

    标签:window.event