Event对象跨浏览器的兼容性

Event对象关联了所有事件,以提供有关事件的信息,但是对Eevent对象的访问各浏览器却存在着差异.
先来看一个Demo:

Tips:You can change the code before run.

在IE中可以正常的运行,如果您是在FF中运行其代码会出现event is not defined的错误提示.在IE中会把event附加成window对象的一个属性,在作为事件处理的一部分访问时会相应填写Event对象所含的数据.

对于基于Netscape的浏览器,是需要作为函数的一个参数传入.

function getPos(evnt){
var posx=evnt.clientX;
var posy=evnt.clientY;
var str=”

(“+posx+”,”+posy+”)

“;
document.getElementById(‘info’).innerHTML=str;
document.getElementById(‘face’).style.left=posx+’px’;
document.getElementById(‘face’).style.top=posy+’px’;
}

不过这种方法无法在IE中被实例化,所以只需在函数中进行相应判断
evnt=evnt||window.event;
这样可以对浏览器的兼容.

Tips:You can change the code before run.

需要注意的是在body中使用内联方法需要显式onmousemove=”getPos(event)”,传入event对象以便对ff的兼容.

随机日志

One Response

  1. 仁心博客
    14 08,2009 / 10:57

    学习了啊

    ReplyReply

Leave a Reply