这里比原文稍加改进,让FF也支持 event.srcElement了, 省得每次写兼容代码挺麻烦的:
  1. //For firefox window.event
  2. if(typeof(window.event) == "undefined")
  3. {
  4. var $EventGetter = function(){
  5. var c=$EventGetter.caller;
  6. while(c.caller)c=c.caller;
  7. var evt = c.arguments[0];
  8. evt.srcElement = evt.target;
  9. return evt;
  10. }
  11. __defineGetter__("event", $EventGetter);
  12. }


都说FireFox比IE好,但是熟悉事件机制的人都知道,FF不支持 window.event全局事件对象,而是把event作为事件函数的第一个参数,

这样在我们需要做一些通用处理的时候,比较麻烦。  添加这段JS代码可以让FF支持window.event:
  1. if(typeof(window.event) == "undefined")
  2. {
  3. var $E = function(){var c=$E.caller; while(c.caller)c=c.caller; return c.arguments[0]};
  4. __defineGetter__("event", $E);
  5. }
使用示例:
  1. <button onclick="test();">Test</button>
  1. function test(){
  2. alert(window.event.src);
  3. }



让FireFox支持 window.event 全局事件对象的更多相关文章

  1. 让FireFox支持window.event属性

    场景描述: 在用户行为采集的过程中,需要侦听window下的event对象,根据事件类型做相应的过滤处理,但在firefox下window.event是未定义的: 问题分析: 要想获取event属性共 ...

  2. javascript event(事件对象)详解

    javascript event(事件对象)详解   1. 事件对象     1. 事件对象 Event 对象代表事件的状态,比如事件在其中发生的元素.键盘按键的状态.鼠标的位置.鼠标按钮的状态. 什 ...

  3. 如何解决firefox下window.event的问题

    一.在函数中传递event参数 在函数中传递event参数,这样我们就可以兼容IE和FF的event的获取了,如下面的函数: function _test(evt){    var src = evt ...

  4. js中(event)事件对象

    事件对象 • 什么是事件对象? • 就是当你触发了一个事件以后,对该事件的一些描述信息 • 例如: ° 你触发一个点击事件的时候,你点在哪个位置了,坐标是多少 ° 你触发一个键盘事件的时候,你按的是哪 ...

  5. firefox浏览器window.event is undefined问题

    获取鼠标坐标,IE下window.event.clientX和window.event.clientY就可以获取x,y的座标了.但是firefox却不行,浏览器报错window.event is un ...

  6. JS ——document、“或”、event(事件对象)

    1.document <document>是所以HTML的最高节点,比<html>的等级还要高. <document>的第一个子节点是“!”——document.c ...

  7. js中获取事件对象的方法小结

    原文地址:http://jingyan.baidu.com/article/d8072ac4594d6cec95cefdac.html 事件对象 的获取很简单,很久前我们就知道IE中事件对象是作为全局 ...

  8. window.event.srcElement与window.event.target 触发事件的元素 触发事件对象的获取,window.event与时间函数参数的event是同一个 事件对象

    判断事件触发的元素:     var tag = window.event.target || window.event.srcElement;    if (tag.tagName.toLowerC ...

  9. window.event.srcElement与window.event.target 触发事件的元素

    IE浏览器支持window.event.srcElement , 而firefox支持window.event.target:<input type="text" onblu ...

随机推荐

  1. ChemDraw是这样预测诺氟沙星NMR谱

    化学绘图软件ChemDraw是一款在生化领域都可以使用的软件,诺氟沙星是一款常用的肠炎药,是生物化学领域的常见研究对象,在研究过程中需要预测它的NMR谱.这个时候如果用最新的ChemOffice 15 ...

  2. ng-model ng-show

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. ipod锁定后的恢复

    1.断开 USB 线缆与设备的连接,但保持线缆的另一端与电脑的 USB 端口相连. 2.关闭设备:按住“睡眠/唤醒”按钮数秒,直到出现红色滑块,然后滑动该滑块.等待设备关闭. 3.按住主屏幕按钮,同时 ...

  4. PHP+MySQL:测试连接+基本DB操作

    PHP使用MySQL,从连接.创建.到结果显示 <?php //连接MySQL测试 $db = mysql_connect("localhost","root&qu ...

  5. java 序列化的作用

    public class Test { public static String requestUrl = "http://localhost/SpringMvc/test.do" ...

  6. /cloudmonitor.log 主机监控

    989866842 INFO 2018-09-30 01:38:58.58 [ricGatherServiceHttp] 提交指标完成,耗时:18ms. SystemInfo [serialNumbe ...

  7. Django 进阶(分页器&中间件)

    分页 Django的分页器(paginator) view from django.shortcuts import render,HttpResponse # Create your views h ...

  8. 老铁,这年头不会点git真不行

    作者:武沛齐 出处:http://www.cnblogs.com/wupeiqi/ 版本控制 说到版本控制,脑海里总会浮现大学毕业是写毕业论文的场景,你电脑上的毕业论文一定出现过这番景象! 毕业论文_ ...

  9. python多进程编程(一)

    multiprocessing模块介绍 python中的多线程无法利用多核优势,如果想要充分地使用多核CPU的资源(os.cpu_count()查看),在python中大部分情况需要使用多进程.Pyt ...

  10. Linux源码包安装和脚本安装

    能够先 vi INSTALL 看看安装过程. 1.源码包安装 2.脚本安装