javascript事件对象修正(处理浏览器间事件对象的差异)
//修正事件对象 处理兼容性 fixEvent:function(e){ var e = e || window.event; if(!e.target){ //IE e.target = e.srcElement; //触发事件的对象 e.layerX = e.offsetX; //鼠标在事件对象上的具体为止,W3C DOM 下,需要设置position:absolute; offsetX不包含对象边框,当边框较大时,应该考虑加上clientLeft 和clientTop e.layerY = e.offsetY; e.pageX = e.clientX + document.documentElement.scrollLeft; //鼠标事件相对整个页面的位置 e.pageY = e.clientY + document.documentElement.scrollTop; e.stopPropagation = function(){ //阻止事件冒泡 e.cancelBuble = true; } /* 再弹出菜单中或者导航条中,会经常使用 */ if(e.type == "mouseover"){ // 判断鼠标来自哪个对象 e.relatedTarget = e.fromElement; }else{ e.relatedTarget = e.toElement;// 判断鼠标滑动到哪个对象 } e.preventDefault = function(){ //阻止浏览器默认事件 e.returnValue = false; } } return e; };