火狐IE event和target的兼容
一、event对象
IE 中可以直接使用 window.event 对象,而 FF 中则不可以,解决方法之一如下:
var theEvent = window.event || arguments.callee.caller.arguments[0];
第二种是将 event 作为参数来传递:
function test(event) {
var event = event || window.event;
//do Something
}
二、关于IE下的event.srcElement和火狐下的event.target
火狐下的e.target相当于ie下的event.srcElement,表示产生事件的源。
例子:
document.onclick = function(e){
var theEvent = window.event || e;
var srcElement = theEvent.srcElement;
if (!srcElement) {
srcElement = theEvent.target;
}
}
三、event.keyCode 和event.which
Mozilla下的event.which与IE下的event.keyCode相当。
代码:
//IE
<input type="text" nkeypress="doIt()">
<script language="javascript">
function doIt()
{
alert(event.keyCode);
}
</script>
//火狐
//经测试 调用位置必须加上event,声明处也加上event才可以使用
<input type="text" nkeypress="doIt(event)">
<script language="javascript">
function doIt(oEvent)
{
alert(oEvent.which)
}
</script>
四、event.x,event.y[IE]和event.pageX,event.pageY[Moz]
IE中取鼠标点击的绝对位置,使用event对象的event.x和event.y
Moz中取鼠标点击的绝对位置,使用event对象的event.pageX和event.pageY
所以为了兼容,需要自己做处理
五、event.offsetX,event.offsetY[IE]和event.pageX,event.pageY[Moz]
IE中取鼠标点击的相对位置,使用event对象的event.offsetX和event.offsetY
Moz中取鼠标点击的相对位置,使用event对象的event.layerX和event.layerY
所以为了兼容,需要自己做处理,
六、事件绑定
事件绑定上Mozilla用addEventListener,removeEventListener
对应IE的attachEvent,detatchEvent
最新文章
- Java--String 和StringBuilder、StringBuffer 的区别?
- PHP-PHP-FPM的max_children一些误区
- 简单在android adb root方法
- EL表达式 (详解)(转)
- oc-17-description
- 如何在DOS下用C/C++ 编译器
- uitableviewcell 自适应大小 参考
- 6种GET和POST请求发送方法
- CentOS6.3 下启动Oracle service和listener
- Chapter 1 Securing Your Server and Network(7):禁用SQL Server Browse
- selenium、python、firefox版本配合无敌
- 让oracle数据库的表的id自动递增
- Hdoj 2044.一只小蜜蜂... 题解
- 排查Linux机器是否已被入侵
- 二维码编码与解码类库ThoughtWorks.QRCode
- 深度学习Bible学习笔记:第二、三章 线性代数 概率与信息论
- Tomcat启动程序端口冲突、确认相应进程及杀死冲突进程的解决方案
- SVD(6.5.1定理证明观察3)
- CentOS7进程管理systemd详解
- ExtJs xtype一览
热门文章
- 才知道 Windows Live Writer Source Code plugin for SyntaxHighlighter 更新到2.0了
- POJ 2361 Tic Tac Toe
- 子元素的margin-top会影响父元素
- Vue系列:关于侵权前言
- vuejs 生命周期 updated
- C#cmd执行命令隐藏窗口,并保持程序一直运行
- meterpreter >; run post/windows/capture/keylog_recorder
- /opt/metasploit/msf3
- Bugzilla-5.0.3 (OpenLogic CentOS 7.2)
- ssh免密钥登录一例问题