起立马扎罗

导航

Javascript兼容性问题

这是一个巨坑,以后把遇到的问题会都贴到这里。一般Chrome没问题的我会忽略掉,如果是找到别人贴的代码,Chrome下有问题我会测试到通过为止,因此以下所有代码是Chrome23亲测可用。
1. event.srcElement 属性:
IE下可以使用event.srcElement属性,但其他浏览器不行,所以要兼容需要使用
1 var el = evt.srcElement ? evt.srcElement : evt.target;
遵照W3C的规格, 是没有event 这个内置对象的, 所以会出现的错误讯息是"event is not defined ", 而IE会把event会丢给window.event,
因此IE上的Javascript 可能会在其他浏览器上有问题,下面有一个通用的解决办法
(1) 在定义function name时请多加一个event或evt参数,不管你的function 有没有其他参数要传,习惯上放在第一个位置,如下: 
 1 funcname( event,....) 
 2 { 
 3 var evt = event ? event : (window.event ? window.event : null); 
 4 if (document.all) // IE 
 5 { 
 6 var x =   event.x ;                   // 取得滑鼠指标目前的 x 位置 
 7 var y =   event.y ;                   // 取得滑鼠指标目前的 y 位置 
 8 } 
 9 else // other
10 { 
11 var x = evt.clientX; // 取得滑鼠指标目前的 x 位置
12 var y = evt.clientY; // 取得滑鼠指标目前的 y 位置 
13 } 
14 } 
2.IE与其他浏览器有些对象的调用方式不同,如下(待完善): 
IE other
event.srcElement event.target
a.innerText a.textContent
document.all[obj].style document.getElementById(obj).style

 

 

posted on 2012-11-28 11:09  起立马扎罗  阅读(272)  评论(0)    收藏  举报