原生JavaScript中的兼容问题

1. getYear()方法 
不知道大家有没有试过下面这个Date对象方法调用年份 

这个方法在在IE中得到的日期是“2016”,在Firefox中看到的日期是“116”,主要是因为在 Firefox 里面 getYear() 返回的是 "当前年份-1900" 的值。 
解决办法 :
用getFullYear( )方法获取年份(这样就浏览器们就能兼容的获取出来正确的年份了)。

2.自定义属性问题 
IE8及以下版本,可以通过可以使用获取常规属性的方法来获取HTML中的自定义属性; 
标准的浏览器,是不能直接获取自定义属性。
解决方法:统一通过 getAttribute() 获取自定义属性。

3. 用getAttribute()的方法获取元素的class名 
getAttribute(“class”); //IE7及以下版本不支持该方法,并且在浏览器中的返回值为null,其他浏览器支持该方法; getAttribute(“className”); // IE7及以下版本支持该方法,其他浏览器不支持 
解决方法: 
obj.getAttribute("class") === null? 
obj.getAttribute("className") : obj.getAttribute("class");


4. 获取CSS的属性方法 
element.style.attr; //只能获取行内样式表里的属性; 
element.currentStyle.attr; //IE浏览器支持该方法; 
getComputedStyle(element).attr; //IE浏览器不支持,其他浏览器支持。 
解决办法:
element.currentStyle ? element.currentStyle[attr] :getConputedStyle(element)[attr]; 

5. 空白文本节点 
在标准浏览器下,用childNodes获取子节点,会把换行和空白字符都算作父节点的子节点,而在IE8及以下版本的浏览器childNodes不会。

6. Window.event问题
window.event 能在IE或是在早期版本的谷歌浏览器下运行,而不能在Firefox下运行,这是因为Firefox的event对象只能在事件发生的现场使用,Firefox必须从源处加入event作参数传递。IE忽略该参数,用window.event来读取该event。
解决方法: 
document.onclick = function (evt) {
     var e = evt ||window.event;


7. 鼠标按键(event对象的button属性)
标准浏览器中:
    0——代表按下鼠标左键;
    1——代表按下鼠标滚轮; 
    2——代表按下鼠标右键;
在IE浏览器中:
    1——鼠标左键;
    2 ——鼠标右键;
    3 ——左右同时按下;
    4——鼠标滚轮;
    5 ——左键加滚轮; 
    6——右键加滚轮;
    7 ——三个同时按下;
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值