现在由于各种原因现在还是有很多用户依然钟爱IE6,感觉那一部分人并不喜欢改变浏览器使用习惯,IE7都出来这么久了也没见多少占有率,甚至IE8都要强行自动更新了也不见什么效果,可以理解的是有些用户是因为工作场合的要求而使用IE6,所以我们经常要做很多额外的代码工作来兼容各种主流的浏览器,不过当IE6的使用率在10%以下的时候也就没有这个必要了。
IE&Firefox 在DOM、事件等上有很多自己的实现,下面这些是比较常见的语法上的区别:
1.CSS的float属性
由于float在javascript中是保留字,所以获取元素的float属性不能像其他属性一样el.style.jsCssProperty,为了获取id为container 的DIV的float属性:
IE 的做法:
document.getElementById(”container “).style.styleFloat =”left”
而Firefox是这样:
1. document.getElementById(“container “).style.cssFloat = “left”;
2.获取元素的最终样式
el.style.jsCssProperty可以轻松获取元素的CSS样式,不过经过javascript修改样式后,这样获取的样式属性并不是元素最终变现的样式 ,要获取一个id为container 的div的最终背景颜色:
IE的语法:
var myObject = document.getElementById(“container “);
var myStyle = myObject.currentStyle.backgroundColor;
Firefox下:
var myObject = document.getElementById(“header”);
var myComputedStyle = document.defaultView.getComputedStyle(myObject, null);
var myStyle = myComputedStyle.backgroundColor;
3.获取元素class
类似float样式,要通过getAttribute获取class属性值在两个浏览器的下做法也是不一样,要获取id为container的元素的class
IE下:
var myObject = document.getElementById(“header”);
var myAttribute = myObject.getAttribute(“className”); 、
Firefox:
var myObject = document.getElementById(“header”);
var myAttribute = myObject.getAttribute(“class”);
4.<label>标签的for属性
IE这样获取<label>的for属性:
var myObject = document.getElementById(“myLabel”);
var myAttribute = myObject.getAttribute(“htmlFor”);
Firefox:
5.获取鼠标的坐标
IE下:
var myCursorPosition = [0, 0];
myCursorPosition[0] = event.clientX;
myCursorPosition[1] = event.clientY;
Firefox:
var myCursorPosition = [0, 0];
myCursorPosition[0] = event.pageX;
myCursorPosition[1] = event.pageY;
6.获取可视窗口的大小
IE:
var myBrowserSize = [0, 0];
myBrowserSize[0] = document.documentElement.clientWidth;
myBrowserSize[1] = document.documentElement.clientHeight;
Firefox:
var myBrowserSize = [0, 0];
myBrowserSize[0] = window.innerWidth;
myBrowserSize[1] = window.innerHeight
7.透明滤镜
IE下设置透明滤镜的CSS代码是这样:
#myElement {
filter: alpha(opacity=50);
}
Firefox设置透明的CSS代码:
#myElement {
opacity: 0.5;
}
所以JS处理滤镜属性的时候相应的是这样:
IE:
var myObject = document.getElementById(“myElement”);
myObject.style.filter = “alpha(opacity=80)”;
Firefox:
var myObject = document.getElementById(“myElement”);
myObject.style.opacity = “0.5″;
当然IE和Firefox在javascript中还有非常多的语法差别,实现机制也不一样,这几个仅供参考。