很多情况下,我们是使用 document.all 来判断当前浏览器是 ie 还是 Mozilla 。
Javascript 是一种由 Netscape 的 LiveScript 发展而来的原型化继承的基于对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如 Perl,遗留的速度问题,为客户提供更流畅的浏览效果。
例如下面的代码:
- <html>
- <body>
- <SCRIPT LANGUAGE="JavaScript">
- <!--
- if(document.all)
- alert("this is a IE");
- else
- alert("this is a Mozilla");
- //-->
- </SCRIPT>
- </body>
- </html>
在 IE 浏览器会输出 "this is a IE"; 而在 firefox 浏览器中会输出 "this is a Mozilla"。 但这样是不能直接就认为在 firefox 中 是不支持 document.all 属性方法的。 下面一段代码,在 IE 和 firefox 浏览器下都运行正常 这是因为较新 FF 对 all 做了特殊处理,JS 在招行过程中检测到只有单独的 all 属性是,就会返回 JSVAL_VOID(也就是 false)值; 当 JS 在招行过程中检测到形如'if (o.p)...'or'(o.p) ?...:...', 则回返回一个 HTMLCOLLECTION 对像. 而在 GOOGLE 浏览器中,则对 all 有双重分处,既是一个 COLLECTION 又是一个 JS VOID(false) 值.
来源: