当前位置: 首页 > 图文教程 > 网络编程 > Javascript > 再谈ie和firefox下的document.all属性

Javascript
兼容firefox的文本框只能输入两位小数的数字的代码
javascript 年月日联动实现核心代码
JavaScript 图片预览效果 推荐
JavaScript是否可实现多线程 深入理解JavaScript定时机制
jquery 表单取值常用代码
javaScript 删除确认实现方法小结
javascript强制弹出新窗口实现代码
Js倒计时代码,当鼠标离开页面与回到页面会自动停止与开始
Div+Js实现的带阴影菜单 微软以前网站曾用过
纯CSS实现的当鼠标移上图片添加阴影效果代码
JavaScript 未知高度元素垂直居中实现代码
javascript 仿开心网好友印象功能(点击文字弹出印象框)
JS+CSS实现的一种交互体验 表单页面
js 效率组装字符串 StringBuffer
window.js 主要包含了页面的一些操作
关于Aptana Studio生成自动备份文件的解决办法
javascript下arguments,caller,callee,call,apply示例及理解
HTA版JSMin(省略修饰语若干)基于javascript语言编写
CSS+Jquery实现页面圆角框方法大全
js 页面刷新location.reload和location.replace的区别小结

Javascript 中的 再谈ie和firefox下的document.all属性


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-01-10   浏览: 423 ::
收藏到网摘: n/a

很多情况下,我们是使用document.all来判断当前浏览器是ie还是 Mozilla 。 例如下面的代码:
复制代码 代码如下:

<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浏览器下都运行正常
复制代码 代码如下:

<html>
<body>
<input type="text" id="txt" value="ddd"/>
<SCRIPT LANGUAGE="JavaScript">
<!--
var v = document.all.txt.value;
alert(v);
//-->
</SCRIPT>
</body>
</html>

这是因为较新FF对all做了特殊处理,JS在招行过程中检测到只有单独的all属性是,就会返回JSVAL_VOID(也就是false)值;
当JS在招行过程中检测到形如'if (o.p)...' or '(o.p) ?...:...', 则回返回一个HTMLCOLLECTION对像.
而在GOOGLE浏览器中,则对all有双重分处,既是一个COLLECTION又是一个JS VOID(false)值.