1. 程式人生 > >IE和FireFox中JS相容之event

IE和FireFox中JS相容之event

event物件

IE 中可以直接使用 event 物件,而 FF 中則不可以,解決方法之一如下:
var theEvent = window.event || arguments.callee.caller.arguments[0];

第二種是將 event 作為引數來傳遞:
function xxx(e){var theEvent = window.event || e;}

srcElement 和 target

在 IE 中 srcElement 表示產生事件的源,比如是哪個按鈕觸發的 onclick 事件,FF 中則是 target。

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

例子:

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

function clickAction(){
       var theEvent = window.event || arguments.callee.caller.arguments[0];
       var theObj=theEvent.target || theEvent.srcElement;

       // do something;
}

function clickAction(e){
       var theEvent = window.event || e;
       var theObj=theEvent.target || theEvent.srcElement;

       // do something;
}

event.keyCode 和event.which

FF不支援window.event.keyCode,代替著是event.which

列子:

//在網頁上面遮蔽tab鍵的程式碼
document.onkeydown = function (e){
            var theEvent = window.event || e;
            var code = theEvent.keyCode || theEvent.which;
            if(code == 9){
              return false;
            }
}