document.all与document.layers

xiaoxiao2026-09-01  17

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

document.layers是Netscape 4.x专有的属性,是一个代表所有由储如<div><layer>等定位了的元素的数组。通常也是用<div>或<layer>对象的id属性来引用的,但是这里面不包含除此以外的其它元素。

其实这两个属性没什么可比性,大概你经常看到他们同时出时,这有一个历史原因。在第四代浏览器出现的时候,标准相当混乱,Netscape和微软分别推出了它们的Navigator 4.x和IE 4.0,这两个浏览器的巨大差异,也使开发者面临了一个使网页跨浏览器兼容的噩梦。而document.layer和document.all分别是两者一个最显著的标志,为了确定浏览者使用的什么浏览器,通常用是否存在document.layers和document.all来判断。新的统一的标准用document.getElementById等系列方法来引用DOM对象,而且Netscape 6.0以后放弃了layers特征,虽然IE继续保留了document.all,但这最终没有成为DOM标准的一部分。希望document.layers和document.all能够早日作古,让标准早日深入人心!

代码示例:

<script language="JavaScript"> function showtime() { var GetTime=newDate(); //获取当前日期 var Years=GetTime.getYear(); // 取当前日期的年 var Months=GetTime.getMongh();// 取当前日期的月 var Days=GetTime.getDate();// 取当前日期的日 var Hours=GetTime.getHours();// 取当前日期的小时 var Minutes=GetTime.getMinutes();// 取当前日期的分钟 var Seconds=GetTime.getSeconds();// 取当前日期的秒 var Dn='AM'; if(Hours<=9) //小时少于9时,前面加0, { Hours='0'+Hours; } if(Hours==0||Hours>12) { Dn='PM'; //小时大于12或0时,设为PM(下午) } if(Minutes<=9) { Minutes='0'+Minutes; } if(Seconds<=9) { Seconds='0'+Seconds;//秒少于9时,前面加0, } NowTime=Years+'年'+Months+'月'+Days+'日 '+Hours+':'+Minutes+':'+Seconds+''+Dn; //当前日期的字符串 if(document.layers){ //不同浏览器下, 将当前日期的字符串显示出来. document.layers.liveclock.document.write(NowTime) document.layers.liveclock.document.close() } else if(document.all) liveclock.innerHTML=NowTime setTimeout('showtime()',1000) //每秒运行showtime函数一次, }

本文来自博客,转载请标明出处:http://blog.csdn.net/jxbyPP/archive/2008/08/01/2753089.aspx

相关资源:js中document.getElementByid、document.all和document.layers区分介绍
转载请注明原文地址: https://www.6miu.com/read-5052204.html

最新回复(0)