文章简介:长久以来JavaScript兼容性一直是Web开发者的一个主要问题。在正式规范、事实标准以及各种实现之间的存在的差异让许多开发者日夜煎熬。为此,主要从以下几方面差异总结IE和Firefox的Javascript兼容性. |
1. getYear()方法
【分析说明】先看一下以下代码:
var year=
new Date().getYear();
document.write(year);
在IE中得到的日期是"2010",在Firefox中看到的日期是"110",主要是因为在 Firefox 里面 getYear 返回的是 "当前年份-1900" 的值。
【兼容处理】
加上对年份的判断,如:
var year=
new Date().getYear();
year = (year<1900?(1900+year):year);
document.write(year);
也可以通过 getFullYear getUTCFullYear 去调用:
var year =
new Date().getFullYear();
document.write(year);
2. eval()函数
【分析说明】在IE中,可以使用eval("idName")或getElementById("idName")来取得id为idName的HTML对象;Firefox下只能使用getElementById("idName")来取得id为idName的HTML对象。
【兼容处理】统一用getElementById("idName")来取得id为idName的HTML对象。
3. const声明
【分析说明】在 IE 中不能使用 const 关键字。如:
const constVar =
32;
在IE中这是语法错误。
【兼容处理】不使用 const ,以 var 代替。
4. var
【分析说明】请看以下代码:
echo=function(str){
document.write(str);
}
这个函数在IE上运行正常,Firefox下却报错了。
【兼容处理】而在echo前加上var就正常了,这个就是我们提到var的目的。
5. const 问题
【分析说明】在 IE 中不能使用 const 关键字。如 const constVar = 32; 在IE中这是语法错误。
【解决方法】不使用 const ,以 var 代替。