【分享】奇怪的document.all,浏览器对document.all的支持差异
在这个和谐的社会,不知道还有多少人在使用 document.all,不用猜,也不用想,比较早接触网络的前辈们应该都使用过这个东西。
从何而来
从IE4开始IE的object model才增加了document.all对象,MSDN中也对 Object.all 有详细的说明,Object.all是个HTMLCollection,不是数组,它包含document.all:
http://msdn.microsoft.com/en-us/library/ms537434%28VS.85%29.aspx
自他出现后,IE后续版本也对其做了很好的支持,并没有打算放弃这个很有意义的属性。曾有一段时间,这个属性连同document.Layers 还被用作Netscape浏览器和IE浏览器的类型判断杀手锏,可惜的是 document.Layers 已经作古,document.all 大有从嫔妃转为正宫之势。
if(document.all){//do something in IE}else if(document.layers){//do something in Netscape}<script type="text/javascript"> window.onload = function() { document.getElementById("info").innerHTML = "!!document.all : " + !!document.all; }</script><span id="SPAN1"></span><div id="info"></div><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>
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>
[解决办法]
纯属路过,顺便接分
[解决办法]
很好啊呵呵
[解决办法]
很好很强大!
[解决办法]
很好 DOCUMENT。ALL我曾经的最爱!
哈哈,继续,期待更多更实用的技术出现!