文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>html event跨浏览器统一化...

html event跨浏览器统一化...

时间:2010-08-14  来源:baoeni

在很多js框架关于event的扩展中都包括这个部分,也就是将event的属性统一化,具体如下:

 //normalize target property
 if (!e.target) {
  e.target = e.srcElement || document;
 }


 //normalize if target is textnode
 if (3 == e.target.nodeType) {
  e.target = e.target.parentNode;
 }


 //normalize timeStamp
 e.timestamp = e.timeStamp || Date.now();
 
 //normalize preventDeafult
 e.preventDefault = e.preventDefault || function() {
  e.returnValue = false;
 };
 
 //normalize pageX,pageY
 if (undefined === e.pageX && undefined !== e.clientX) {
  var doc = document.documentElement, body = document.body;
  e.pageX = e.clientX + (doc.scrollLeft || body.scrollLeft || 0) - (doc.clientLeft || 0);
  e.pageY = e.clientY + (doc.scrollTop || body.scrollTop || 0) - (doc.clientTop || 0);
 }
 
 //normalize button press
 if (!e.which) {
  e.which = e.charCode || e.keyCode;
 }
 // 鼠标单击:1 == 左键; 2 == 中键; 3 == 右键
 if (!e.which && e.button) {
  e.which = (e.button & 1 ? 1 : (e.button & 2 ? 3 : (e.button & 4 ? 2 : 0)));
 }
 
 // add relatedTarget, if necessary
    if (!e.relatedTarget && e.fromElement) {
        e.relatedTarget = (e.fromElement === e.target) ? e.toElement : e.fromElement;
    }  
   
 // add metaKey to non-Mac browsers (use ctrl for PC's and Meta for Macs)
    if (e.metaKey === undefined) {
        e.metaKey = e.ctrlKey;
    } 

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载