zoukankan      html  css  js  c++  java
  • 浏览器兼容问题----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。

     

  • 相关阅读:
    Eclipse启动Tomcat报错,系统缺少本地apr库
    Linux(Debian)下Maven的安装
    Debian ls 文件 文件夹颜色显示
    Mybatis3.0防止SQL注入
    MySql初始配置
    文档在线预览开源实现方案一:OpenOffice + SwfTools + FlexPaper
    Java多线程的信号量
    判断线程池中的线程是否全部执行完毕
    一个简单的死锁
    使用并发来提高数据抓取的效率
  • 原文地址:https://www.cnblogs.com/renxiaoren/p/4832280.html
Copyright © 2011-2022 走看看