浏览器兼容问题----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。
浏览器兼容问题----Firefox不兼容event的解决方法的更多相关文章
- IE 不兼容的几个js问题及解决方法
IE 不兼容的几个js问题及解决方法 1 Table的问题 在动态新增tr或者td时,createElecment() 一般用appendChild();都不生效,解决办法是用新增tbody, 如 ...
- IE 不兼容的几个js问题及解决方法1
IE 不兼容的几个js问题及解决方法 1 Table的问题 在动态新增tr或者td时,createElecment() 一般用appendChild();都不生效,解决办法是用新增tbody, 如 ...
- Ubuntu下Firefox无法播放视频的解决方法
Ubuntu为Firefox安装Adobe Flash Player 解决方法(解决火狐浏览器安装了三个flash插件中的第二个或者第三个插件而无法安装第一个adobe flash插件的方法):在新立 ...
- 微信自带浏览器被输入法阻挡文本框的 jQuery 解决方法 by FungLeo
微信自带浏览器被输入法阻挡文本框的 jQuery 解决方法 by FungLeo 前言 做好了项目之后,在各种浏览器里面測试,都没有问题.非常高兴,交付后端使用.然而发如今微信自带浏览器里面,却是出现 ...
- 火狐浏览器如何js关闭窗口的几种解决方法
今天在项目上有一个页面要求在几秒后自动关闭,想着还比较简单,用window.close()就可以了,但是用IE/谷歌/火狐浏览器试了一下,发现IE可以,谷歌用网上的兼容方法也可以实现,但是火狐这里卡住 ...
- Firefox内存占用过高解决方法
刚开始使用firefox火狐浏览器的时候,你会发现firefox占用内存大,CPU占用率高,打开网页停顿等问题,其实这些是因为firefox没有进行优化,默认设置是标准的设置的原因,解决方法如下: 一 ...
- 浏览器的内核分别是什么?经常遇到的浏览器的兼容性有哪些?原因,解决方法是什么,常用hack的技巧 ?
* IE浏览器的内核Trident. Mozilla的Gecko.google的WebKit.Opera内核Presto: * png24为的图片在iE6浏览器上出现背景,解决方案是做成PNG8. * ...
- 几种访问其他域swf文件,或本地浏览器运行环境【安全沙箱】冲突解决方法
声明: 几种方法都源自网络,我只负责汇总一下子,因为来自多方转载,也找不到初始出处了,需要的可以随意收藏,物尽其用,蛮好^_^ 对于类似的出错信息:SecurityError: Error #2148 ...
- JS IOS/iPhone的Safari浏览器不兼容Javascript中的Date()问题的解决方法
1 var date = new Date('2016-11-11 11:11:11'); 2 document.write(date); 最近在写一个时间判断脚本,需要将固定好的字符串时间转换为时间 ...
随机推荐
- (转载)按行合并两个sql的查询结果
(转载)http://blog.csdn.net/wxwstrue/article/details/6784774 Union all join 是平行合并 为水平连接 Union all 是垂直合并 ...
- selenium-webdriver的等待方法
Wait commands in WebDriver Listing out the different WebDriver Wait statements that can be useful fo ...
- 322. Coin Change
动态规划里例题,硬币问题. p[i] = dp[i - coin[j]] + 1; 注意i < coin[j] dp[i-coin[j]]无解都要跳过. public class Solutio ...
- iOS9上的Universal Link实现(教程)
1.Universal Link 理解为苹果官方支持deeplink就行了 2.通过点击HTTP链接启动APP Web・iOS应用在支持Universal Link的前提下,当用户点击特点的链接时会自 ...
- 关于list、set、map的几点总结
用法: 1. 如果涉及到堆栈,队列等操作,应该考虑用List, 对于需要快速插入,删除元素,应该使用LinkedList, 如果需要快速随机访问元素,应该使用ArrayList.2. 如果程序在单线程 ...
- Quartz定时任务学习(九)Quartz监听器
Quartz 提供了三种类型的监听器:监听 Job 的,监听 Trigger 的,和监听 Scheduler 自已的. 本章解释如何应用每一种类型来更好的管理你的 Quartz 应用,并获悉到什么事件 ...
- C# winform如何在textbox中判断输入的是字母还是数字?
1.用正规式using System.Text.RegularExpressions; string pattern = @"^\d+(\.\d)?$";if(Text1.Text ...
- POJ 1185 状态压缩DP 炮兵阵地
题目直达车: POJ 1185 炮兵阵地 分析: 列( <=10 )的数据比较小, 一般会想到状压DP. Ⅰ.如果一行10全个‘P’,满足题意的状态不超过60种(可手动枚举). Ⅱ.用DFS ...
- Openstack Ice-House 版本号说明--之中的一个 NOVA
OpenStack Icehouse在4.17正式公布,看了下release note,发现改变不小,说明openstack还是在高速发展中,有不少新的特性增加,也有些小的剔除.以下就我所关注的项目做 ...
- Linux下jvm、tomcat、mysql、log4j优化配置笔记[转]
小菜一直对操作系统心存畏惧,以前也很少接触,这次创业购买了Linux云主机,由于木有人帮忙,只能自己动手优化服务器了.... 小菜的云主机配置大致为:centeos6(32位),4核心cpu,4G内存 ...