document.all 在各浏览器中的支持不同
各浏览器中对 document.all 方法的支持不同,使用它获取元素引用可能造成兼容性问题。
浏览器返回值
| 浏览器 | 返回值 | | :-------- | --------:| | IE6 IE7 IE8(Q) | document.all : [object] | | Opera Safari IE8(S) | document.all : [object HTMLColletion] | | Firefox(Q) | document.all : [object HTML document.all.class] | | Firefox(S) | document.all : undefined | | Chrome(S) | document.all : [object HTMLColletion] |
!!document.all返回值
| 浏览器 | 返回值 | | :-------- | --------:| | IE6 IE7 IE8 | !!document.all : true | | Firefox Chrome Safari Opera | !!document.all : false |
如下代码firefox(s)报错,document.all undefinded
<html id="HTML1">
<script type="text/javascript">
window.onload = function() {
var html = "<table border='1' style='font-size:12px;'>";
function getElement(sec) {
html += "<tr><td>" + sec + "</td>" + "<td>" + eval(sec).id + "</td>";
}
getElement("document.all(0)");
getElement("document.all[0]");
getElement("document.all.item(0)");
getElement("document.all('SPAN1')");
getElement("document.all.SPAN1");
getElement("document.all['SPAN1']");
getElement("document.all.namedItem('SPAN1')");
html += "</table>";
document.getElementById("info").innerHTML = html;
}
</script>
<span id="SPAN1"></span>
<div id="info"></div>
</html>
解决方法
由于firefox对docuemnt.all支持有问题,所以最好使用document.getElementById, document.getElementByTagName 获取dom
Written on January 2, 2013