利用文檔對象的一個屬性lastModified就可以顯示網頁最后日期,這一點對一個網站管理者來說是十分有用的??梢栽诰W頁中加入相應的函數,自動顯示文檔的最后修改日期。其實,很多網頁都有這段程序,我在這里把這段大家都用的程序作為例子進行剖析,以說明如何對一個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神通廣大!
(黃山村夫 2001年04月30日 15:59)
新聞熱點
疑難解答