document.all and document.layers

来源:互联网 发布:短信链接打开淘宝app 编辑:程序博客网 时间:2024/05/01 08:06

document.all和document.layers(转)

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函数一次,

}

原创粉丝点击