浏览器兼容问题----Firefox不兼容event的解决方法

一、event.srcElement:当前事件的源;

   在IE下,event对象有srcElement属性,但是没有target属性;Firefox下,event对象有target属性,但是没有srcElement属性.但他们的作用是相当的,即:

firefox 下的event.target = IE 下的event.srcElement

解决方法:使用obj(obj = event.srcElement ? event.srcElement : event.target;)来代替IE下的event.srcElement或者Firefox下的event.target.

srcElement 和target

在IE 中srcElement 表示产生事件的源,比如是哪个按钮触发的onclick 事件,FF 中则是target。

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

var srcElement = theEvent.srcElement;

if (!srcElement){

    srcElement = theEvent.target;

}

例子:

document.onclick = function(e){

    var theEvent = window.event || e;

    var srcElement = theEvent.srcElement;

    if (!srcElement) {

       srcElement = theEvent.target;

    }

}

function clickAction(){

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

    var srcElement = theEvent.srcElement;

    if (!srcElement) {

       srcElement = theEvent.target;

    }

    // do something;

}

function clickAction(e){

    var theEvent = window.event || e;

    var srcElement = theEvent.srcElement;

    if (!srcElement) {

       srcElement = theEvent.target;

    }

    // do something;

}

二、event对象

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

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

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

function xxx(e){var theEvent = window.event || e;}

三、event.keyCode 和event.which

FF不支持window.event.keyCode,代替着是event.which。

 

posted @ 2015-09-23 14:57  renxiaoren  阅读(556)  评论(0编辑  收藏  举报