1,判断浏览器是否ie不能使用document.all,因为opera也支持document.all,所以这样判断时相当于把opera当作ie来处理了。应该使用navigator来判断。
2,在FF和Opear中获取元素距body的距离直接使用offsetLeft/offsetTop即可,而在ie中offsetXXX是相对于父元素的,所以必须从该元素冒泡读取父元素的offsetXXX值然后相加获取。
3,设定元素的css内容在非ie浏览其中使用setAttribute("style","......");,而在ie中(Opear不支持)只能使用obj.style.cssText="...."。
4,设定元素的class属性在非ie中使用setAttribute("class","className值");,而ie中只认className属性,因此应该这样:setAttribute("class", "HeaderBar")。
setAttribute("className", "HeaderBar");以兼容所有浏览器。
5,在标准浏览其中使用obj.style.xxx来获取元素中通过style=""的内联方式加入的样式属性,而不能获取在外部样式表或<style></style>中定义的样式,在ie中可以通过obj.currentStyle.xxx来获取通过各种方式定义的样式属性。
6,向元素增加事件处理的标准的做法是:
var testdiv = document.getElementById("testdiv");
testdiv.setAttribute("onclick", "doFoo();");
除了IE,上面的代码在所有的当前浏览器中都能工作。在IE中必须使用点词法来引用所需的事件处理程序:
var testdiv = document.getElementById("testdiv");
testdiv.onclick = function(){doFoo();};