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

例如下面的代码:


代码如下:

<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)值.

(0)

相关推荐

  • document.all与WEB标准

    1.DOM WEB标准现在可真是热门中热门,不过下面讨论的是一个不符合标准的document.all[].DOM--DOCUMENT OBJECT MODEL文档对象模型,提供了访问文档对象的方法.例如文档中有一个table,你要改变它的背景颜色,那就可以在javascript中用document.all[]访问这个TABLE.但DOM也有所不同,因为浏览器厂商之间的竞争,各浏览器厂商都开发了自己的私有DOM,只能在自己的浏览器上正确运行,document.all[]就是只能运行在 IE是的微软

  • 解决 firefox 不支持 document.all的方法

    今天为Kinoko-World写v2版,遇到了点js的小问题.document.all在firefox下不支持,上网搜索了一下, 用 document.getElementsByTagName("*") 替代就OK了. getElementsByTagName("*") 可以得到得到所有元素的集合 getElemntById 可以按id得到某一元素 getElementsByName 可以得到按name属性得到某一元素 getElementById效果更好啊

  • js中document.getElementByid、document.all和document.layers区分介绍

    document.all是IE 4.0及以上版本的专有属性,是一个表示当前文档的所有对象的娄组,不仅包括页面上可见的实体对象,还包括一些不可见的对象,比如html注释等等.在document.all数组里面,元素不分层次,是按照其在文档中出现的先后顺序,平行地罗列的.所以可以用数字索引来引用到任何一个元素.但比较常用的是用对象id来引用一个特定的对象,比如document.all["element"]这样. document.layers是Netscape 4.x专有的属性,是一个代表

  • document.all还是document.getElementsByName?

    复制代码 代码如下: (wuhen注:document.all是ie特有的属性,不是万维网标准) 当页面上的控件同名且多个的时候,你首先做的是什么?判断长度?的确,从程序的严密角度出发,我们是需要判断长度,而且有长度和没长度是两种引用方法.我们来看: oEle= document.all.aaa ;//这里有一个aaa的对象,但我们不知道它现在长度是多少,所以没办法对它操作.因此,我们要先做判断长度的过程.如下: if(oEle.length){}else{}; 在两种情况下,花括号里面的内容写

  • document.all的一个比较完整的总结及案例

    一. document.all是页面内所有元素的一个集合.例如: document.all(0)表示页面内第一个元素 二. 复制代码 代码如下: document.all可以判断浏览器是否是IE if(document.all){ alert("is IE!"); } 三. 也可以通过给某个元素设置id属性(id=aaaa),然后用document.all.aaaa调用该元素 四. 案例: 代码1: 复制代码 代码如下: <input name=aaa value=aaa>

  • Document和Document.all区别分析

    123456 [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行] 如果与a,form对象,image对象,applet对象相对应的html标记中设定了name性质,它的值将被用作document对象的属性名,用来引用相应的对象,其他的对象则不可以. 另外,input等如果作为form的子元素,则直接用inputName或者document.inputName来引用此对象就是错误的,必须使用formName.inputName引用,否则就可以使用inputName来引用. 另外应该注意到有

  • document 和 document.all 分别什么时候用

    <body> <div id="aa">123456</div> <input type="button" value="这里用 document 就出错" onclick="alert(document.aa.innerText);" /> <br /> <input type="button" value="这里用 docume

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

    例如下面的代码: 复制代码 代码如下: <html> <body> <SCRIPT LANGUAGE="JavaScript"> <!-- if(document.all) alert("this is a IE"); else alert("this is a Mozilla"); //--> </SCRIPT> </body> </html> 在IE浏览器会输

  • E3 tree 1.6在Firefox下显示问题的修复方法

    tree 在Firefox下只显示一句话: 用firebug查看页面元素观察发现 两个script导入被一个<script>分隔开了,显然是document.write的问题.由于Firefox对js规范的检查比较严格,肯定一些字符输出的的时候没有转义. 查看e3 tree的源代码: /E3Tree/src/net/jcreate/e3/tree/ext/ExtTreeBuilder.java /E3Tree/src/net/jcreate/e3/tree/ext/OutlookExtTree

  • IE和Firefox下event事件杂谈

    因为javascript的事件模型有三种,它们分别是NN4.IE4+和W3C/Safari;这也造成了在不同的浏览器中处理event的差异,这里结合一些零碎的代码来说明如何做到event在IE4+和Firefox下的正常工作.首先看如下代码: 复制代码 代码如下: function doEventThing(eventTag){ var event = eventTag||window.event; var currentKey = event.charCode||event.keyCode;

  • firefox下javascript实现高亮关键词的方法

    复制代码 代码如下: IE下有:   var range = document.createRange();   FireFox下有:   var range = document.body.createTextRange(); IE下有findText及pasteHTML,但是fireFox下就没有!怎么办?查了好多资料,都没有能说出个所以然的,皇天不负有心人,终于让我给搞出来了! 注:我这里不是用正则替换,因为正则替换有它的不足之处! 不知道先前有没有高人研究过这种方法. Untitled

  • 再谈javascript常见错误及解决方法

    初学Javascript,每天总是被很小的问题折磨半天,今晚就有好几个小问题. 第一:全部使用双引号造成匹配错误 <input type="checkbox" onmouseover="document.getElementById("test").style.display="none":"/> 改行一直报错误:unexpected toke "}"  检查半天也没有发现错误,对照发现视频上是

  • 关于IE浏览器以及Firefox下的javascript冒泡事件的响应层级

    假设在我们页面有这么一段标签: 复制代码 代码如下: <body> <div id="testDiv" style="width:200px;height:200px;background:#c0c0c0;"></div> </body> 现在在页面加入这么一段脚本: 复制代码 代码如下: <script type="text/javascript"> window.onload=fun

  • 解决FireFox下[使用event很麻烦]的问题

    在FireFox下编写事件处理函数是很麻烦的事. 因为FireFox并没有 window.event . 如果要得到 event 对象,就必须要声明时间处理函数的第一个参数为event. 所以为了兼容IE与FireFox,一般的事件处理方法为: btn.onclick=handle_btn_click; function handle_btn_click(evt) {     if(evt==null)evt=window.event;//IE     //处理事件. } 对于简单的程序,这不算

  • 解决 FireFox 下[使用event很麻烦] 的问题.

    在FireFox下编写事件处理函数是很麻烦的事. 因为FireFox并没有 window.event . 如果要得到 event 对象,就必须要声明时间处理函数的第一个参数为event. 所以为了兼容IE与FireFox,一般的事件处理方法为: btn.onclick=handle_btn_click; function handle_btn_click(evt) {     if(evt==null)evt=window.event;//IE     //处理事件. } 对于简单的程序,这不算

  • Firefox下样式设置宽度奇怪现象

    页面中有一个数据列表,是table,放在一个div窗口中,结构如下: 复制代码 代码如下: <body> <div id="container"> <table id="grid">....列表数据....</table> </div> </body> 给 container 设置了样式 #container {width:100%; margin:10px;} 给 grid 设置了样式 #gr

随机推荐