利用文档对象的一个属性lastModified就可以显示网页最后日期,这一点对一个网站管理者来说是十分有用的。可以在网页中加入相应的函数,自动显示文档的最后修改日期。其实,很多网页都有这段程序,我在这里把这段大家都用的程序作为例子进行剖析,以说明如何对一个Javascript程序举一反三地应用。
一、最简单的用法
示例:本页最后更新日期: 01/31/2001 16:01:24
这个例子只用了一条语句,请看源代码:
<script language="Javascript">
<!--
document.write(document.lastModified)
//-->
</script>
这里document.write(document.lastModified)的作用是用document对象的write方法把document对象的lastModified属性值写到文档中。在《Javascript基础》一文中已讲过,对象是一组含有数据的属性和对属性中数据进行操作的方法。这里,document是一个对象,它包含了许多类似lastModified这样的属性,也包含了许多类似于write这样的方法,我想你现在应该对什么是对象、什么是对象的属性和方法有所理解了吧?!那么怎样知道有那些对象,一个对象又有那些属性和方法呢?这只有去查看Javascript的教科书了。
二、显示我们习惯的日期
示例: 更新日期:2001年1月31日
上例的日期表示方法是按西方人的习惯的,而本例这种写法就符合中国人的习惯了。我们再来看看源代码:
<script languae="JavaScript">
<!--
var lastdate=new Date(document.lastModified);
Y=lastdate.getYear();
if (Number(Y)<100) Y="20"+Y;
M=Number(lastdate.getMonth())+1;
D=lastdate.getDate();
document.write("更新日期:"+Y+"年"+M+"月"+D+"日");
-->
</script>
本程序的思路:把表示日期的数码从lastModified中分离出来,再加上中文年月日不就行了吗!
Javascript的Date类型有相应的方法把日期数码分离出来,所以第一步就声明了一个日期变量“lastdate”,并把document.lastModified作为一日期类型给lastdate赋值。后面就是用相应的方法获取年月日数字了,最后,再用document的write方法把它写入网页文档。在这段程序中加了一句:if
(Number(Y) <100) Y="20"+Y;由于比较老一点的机器,年份是用两位数表示,就是所谓的“千年虫”,所以2001年就变成了01年,先把年份由字符变为数值再100比较,若小于100,说明是用两位数表示年份,所以在前面加“20”,若大于100,则是用四位数表示年份,所以就不用改了。
获得的月份数为什么要加1呢?这是因为这里的月份是从0开始的,所以要加1,否则1月就变成0月了。由于是数字相加,所以要先把月份用Number函数把字符变为数值。
三、可控显示修改日期
图1 未按鼠标时的按钮图
图2 按下鼠标后的按钮图
这个例子中,只有你按下按钮才显示更新日期,而当你鼠标移开按钮时,更新日期又不见了。先看代码:按钮代码:
<input type="button" name="lsdate" value="按这里查看最近更新日期"
onclick="ldate()" onmouseout="resetvalue()">
程序代码:
<script languae="JavaScript">
<!--
function ldate(){
var lastdate=new Date(document.lastModified);
Y=lastdate.getYear();
if (Number(Y)<100) Y="20"+Y;
M=Number(lastdate.getMonth())+1;
D=lastdate.getDate();
document.all["lsdate"].value="更新日期:"+Y+"年"+M+"月"+D+"日";
}
function resetvalue (){
document.all["lsdate"].value="按这里查看最近更新日期";
}
-->
</script>
按钮代码中加了两个事件,并通过事件调用相应的Javascript函数,以完成相应的功能,另外这里给按钮取了一个名称“lsdate”,以便程序中使用。对于要在程序中使用的元素,给它取一个合适的名称是一种好习惯,用网页制作工具软件的朋友,当然也可采用软件自动生成的元素名称,但为了便于记忆,还是自己取一个比较好。程序基本上与例二类似,但已把获得日期的代码定义为一个函数了,你看创建函数就是如此简单。那对花括号就是圈定函数的范围的。另外这里也不能再用write方法了,而是直接给按钮的“value”属性赋值,这里的document.all很重要,它的意思是文档的所有元素,也就是说它包含了当前网页的所有元素。它是以数组的形式保存元素的属性的,所以我们可以用document.all["元素名"].属性名="属性值"来动态改变元素的属性。用这条语句,可以做出许许多多动态网页效果,如:动态变换图片、动态改变文本的背景、动态改变网页的背景、动态改变图片的大小、动态改变文字的大小各颜色等等。你简直可以动态控制所有网页元素。这是不是一条神通广大的语句,应该说是Javascript神通广大!