在IE中,事件对象是window对象的一个属性event。也就是说,事件处理函数必须这样访问事件对象:
obj.onclick = function(e)
{
var e = e || window.event;
}
等同于:
<div ....... οnclick="do(event)">...</div>
function do(e)
{
e= e|| window.event;
}
一旦发生事件,就会创建event对象,event对象只在事件发生的过程中才有效。
firefox里的event跟IE里的不同,IE里的是全局变量,随时可用;firefox里的要用参数引导才能用,是运行时的临时变量。
在IE/Opera中是window.event,在Firefox中是event;而事件的对象,在IE中是 window.event.srcElement,在Firefox中是event.target,Opera中两者都可用
判断事件源:
var reltg = e.relatedTarget ? e.relatedTarget : e.type == 'mouseout' ? e.toElement : e.fromElement;
阻止使用右键菜单中内容:
document.body.οncοntextmenu=function(e)
{
if(window.event)
{
e.returnValue = false;
}
else
{
e.preventDefault();
}
}
resize事件执行两次解决方法:
var temp = null;
function doResize()
{
temp = temp? temp:setTimeout(resizeAction,0);
}
function resizeAction()
{
........
}
使用addEventListener注册的处理程序按照他们的优先顺序调用
使用attachEvent注册的处理程序可能按照任何顺序调用,所以代码不应该依赖于调用顺序