火狐IE event和target的兼容


一、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>  //火狐
//經測試 調用位置必須加上event,聲明處也加上event才可以使用 <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







免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM