一、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相当。

代码:

JScript 代码 复制
火狐IE event和target的兼容
火狐IE event和target的兼容//IE
火狐IE event和target的兼容<input type="text" nkeypress="doIt()">
火狐IE event和target的兼容<script language="javascript">
火狐IE event和target的兼容function doIt()
{
火狐IE event和target的兼容   alert(event.keyCode);
火狐IE event和target的兼容 }
火狐IE event和target的兼容</script>
火狐IE event和target的兼容
火狐IE event和target的兼容//火狐
//经测试  调用位置必须加上event,声明处也加上event才可以使用
火狐IE event和target的兼容<input type="text" nkeypress="doIt(event)">
火狐IE event和target的兼容<script language="javascript">
火狐IE event和target的兼容function doIt(oEvent)
{
火狐IE event和target的兼容   alert(oEvent.which)
火狐IE event和target的兼容 }
火狐IE event和target的兼容</script>
火狐IE event和target的兼容

四、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


相关文章:

  • 2021-12-18
  • 2021-09-24
  • 2021-09-19
  • 2021-12-20
  • 2022-02-24
  • 2021-05-27
  • 2022-02-08
猜你喜欢
  • 2022-12-23
  • 2021-09-11
  • 2021-07-04
  • 2022-12-23
  • 2021-12-07
  • 2021-08-12
  • 2022-12-23
相关资源
相似解决方案