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。

     

  • 相关阅读:
    Java Formatter 阅读心得
    Android 应用的动画实践View Animation篇
    Hexo 简明入门教程(一)
    用Gradle 构建你的android程序依赖管理篇
    MQTT 折腾笔记协议简读
    ingress 在中国大众篇
    谈谈常见的移动应用设计风格
    用nodejs 改造一个移动版本的网站
    Android AdapterView 源码分析以及其相关回收机制的分析
    关于计算机类课程实验教学的思考
  • 原文地址:https://www.cnblogs.com/renxiaoren/p/4832280.html
Copyright © 2011-2022 走看看