• 浏览器兼容问题----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。

     

  • 相关阅读:
    struts2 ajax传值
    s:iterator遍历
    JavaScript闭包
    组合继承与寄生组合式继承
    JSP EL表达式详细介绍
    js判断字符串是否包含中文或英文
    jQuery 中 jQuery(function(){})与(function(){})(jQuery) 的区别
    HTML5--新增结构元素(2)
    HTML5--新增全局属性(1)
    nodejs的安装配置(nvm-windows)
  • 原文地址:https://www.cnblogs.com/renxiaoren/p/4832280.html
Copyright © 2020-2023  润新知