4.3 处理Web文档
document对象代表是一个Web文档或一个页面。Web文档在浏览器窗口中显示,所以很明显document对象是window对象的子对象。
因为window对象总是代表当前窗口(包含脚本的窗口),所以可以使用window.document来指向当前文档。也可以简单地使用document来自动指向当前窗口。
|
注意:前面已经使用过document.write方法在Web文档中显示文字。前些章节的例子只是使用一个窗口和一个文档,因此没有必要使用window.document.write—但这个较长的句法是更好的。 |
|
如果要使用多个窗口(或框架),就要使用多个window对象,每个window对象都有自己的document对象。要使用其中某一个文档对象,需要指出窗口名和文档名。
在后面的部分,将看到document文档对象的一些属性和方法,它们在编写脚本时经常被用到。
4.3.1 获得文档的信息
document对象的几个属性通常会包含当前文档的信息:
Ø document.URL指明了文档的URL地址。这是一个简单的文本字段,你不能改变它的属性。如果需要给用户一个不同的地址,要使用window.location对象,有关内容本章后面会提到。
Ø document.title列出了当前页面的标题,由HTML中的<title>标签定义。
Ø document.referrer是用户所浏览的上一个页面的URL地址,通常这个页面有一个链接指向当前页面。
Ø document.lastModified是文档最后修改的日期。这个日期从服务器传到页面。
Ø document.bgColor和document.fgColor是文档的背景和前景(文字)颜色,对应<body>标签的BGCOLOR和TEXT属性。
Ø document.linkColor、document.alinkColor和document.vlinkColor是文档中链接的颜色。它们对应<body>标签的LINK、ALINK和VLINK属性。
Ø document.cookie允许读取和设置一个文档的cookie。有关cookie的知识,参见http://www.jsworkshop.com/cookies.html。
作为一个文档属性的例子,程序清单4.1显示了一个简单的HTML文档,用JavaScript显示了最后修改的日期。
程序清单4.1 显示最后修改日期
<html><head><title>Test Document</title></head>
<body>
<p>This page was last modified on:
<script language="JavaScript" type="text/javascript">
document.write(document.lastModified);
</script>
</p>
</body>
</html>
这可以告诉用户页面最近被修改过。如果使用了JavaScript,则没有必要记录每次修改页面的更新日期。(也可以使用脚本打印当前日期代替最后修改日期,但当前日期有可能是假的。)
|
|
注意:你可能会发现document.lastModified属性在Web页面上没有工作,或者返回的是错误值。此日期是从Web服务器获取的,一些服务器不会正确保存修改后的日期。 |
4.3.2 在文档中写入文字
最简单的文档对象方法是最经常使用的。实际上,我们已经使用了其中的一个。document.write方法的作用是输出文字,以作为文档窗口中HTML页面的一部分。无论何时要在Web页面中包含输出时,都需要使用这个语句。
document.writeln可代替document.write来输出文字,但前者在结尾处还包括了新的一行(\n)的字符。这对于输出段落尾的文字是非常方便的。
|
警告:要牢记新的一行这个字符在浏览器中显示的是一个空格,除非它在<pre>容器中。如果希望真正空一行,可以使用<br>标签。 |
|
可以只在Web页面的正文中使用这些方法,因此它们将在页面载入后执行。如果不刷新页面,就不能在一个已加载的页面中添加方法。
|
注意:也可以在较新版本的浏览器中用新的DOM功能来直接修改Web页面中的文字,相关知识参见第14章。 |
|
document.write方法也可以用在HTML文档正文的一个<script>标签内。假如在文档正文包括了一个函数调用,就可以在函数中使用它。
4.3.3 使用Link和Anchor对象
document对象的另一个子对象是link对象。实际应用中,在文档中可以有多个link对象。每个对象都包括链接到其他网址(或anchor)的信息。
|
提示:Anchor是HTML文档中位置的名称,可以直接跳转到此。可以在标签中定义它们,如<a name="part2">,也可以链接它们,如<a href="#part2">。 |
|
可以用links数组来访问多个link对象。每个数组的成员是一个当前页面的link对象。数组的一个属性document.links.length显示了页面中链接的数量。
每个link对象(或links数组的成员)都有一些定义了地址的属性。Href属性包含了完整的URL,其他属性包含了URL的一部分。 location对象有一些相同的属性,本章后面部分会介绍。
可以通过link的数字和属性名称来指向属性。例如,下面的语句将第一个链接的完整网址赋予变量link1:
link1 = links[0].href
anchor对象也是document对象的子对象。每个anchor对象代表了一个当前文档的anchor(anchor是可以直接跳转的特殊位置)。
就像链接一样,可以用anchors数组来访问多个anchor对象。每个数组的成员是一个anchor对象。document.anchors.length属性表示的是anchors数组中成员的个数。







