浏览器兼容问题----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。
最新文章
- .NET Core采用的全新配置系统[10]: 配置的同步机制是如何实现的?
- What is Away3D
- Django 1.7 Tutorial 学习笔记
- 基于CWMP(TR069)协议ACS服务器的搭建
- maven仓库没有的包依赖
- java servlet+jquery+json学习小例子
- YII2 随笔 视图最佳实践
- 添加Metasploit-payload到已有的Android项目中
- 在测试crontab执行脚本的时候,修改了linux的系统时间,crontab不执行了。
- MYSQL汇总
- 01_Linux学习_基础知识
- 面试阿里前端P6血和泪换来的收获
- SpringMVC Web项目升级为Springboot项目(一)
- vs2010 vs2013等vs中如何统计整个项目的代码行数
- OVS-----CentOS7上搭建基于Open vSwitch的VxLAN隧道实验
- Android动画模式
- 调用 Https WebService 使用程序自动生成代理类
- 百度基础架构组-实习生面试(2016.08 java后台开发)
- opencv3中SurfFeatureDetector、SurfDescriptorExtractor、BruteForceMatcher的使用
- javascript声明对象时 带var和不带var的区别
热门文章
- Hadoop Yarn内存资源隔离实现原理——基于线程监控的内存隔离方案
- JS思维导图
- 动态规划(DP计数):HDU 5116 Everlasting L
- HDU-2975 Billboard
- Bzoj 1036: [ZJOI2008]树的统计Count 树链剖分,LCT
- Android NDK开发Crash错误定位[转]
- 1 weekend110的Linux带图形系统安装 + 网络配置 + 静态IP设置
- 【Java重构系列】重构31式之搬移方法
- Android模拟器报";Failed To Allocate memory 8";错误的解决办法
- WCF客户端和服务器时间不一致,导致通道建立失败的问题)