教程二、函數(shù)的應用
這個教程中我要講的是有關函數(shù)(function)的使用,函數(shù)在JavaScript中應用是相當廣
泛的,幾乎在后邊的所有例子中我們都將用到函數(shù),可以看出它在JavaScript中的作用
是多么的重要!
例2 第一個函數(shù)示例
<html>
<head>
<title>第一個函數(shù)示例</title>
<script language="Javascript">
<!--
function talk(){
alert("嘿,你干嗎點我?");
}//end function
-->
</script>
</head>
<body>
<form>
<p><input type="button" name="B1" value="請點擊……" onclick="talk
()"> </p>
</form>
</body>
</html>
例2的運行結(jié)果如下:(FBBS不支持HTML,故略)
在此例中,我們通過Html語句<input type="button" ……>產(chǎn)生一個按鈕,當
瀏覽者用鼠標去點擊此按鈕時將觸發(fā)按鈕的onclick事件,于是依據(jù)語句onclick="talk
()"Html文件將會調(diào)用函數(shù)talk()。函數(shù)必須用function來標識,然后空一格,緊跟函
數(shù)名,接著是"()"號,函數(shù)中可以有很多語句,這些語句必須用"{"號和"}"號括起來。
函數(shù)talk()只有一條語句alert("嘿,你干嗎點我?");函數(shù)alert()是一個JavaScript自
帶的,它將彈出一個小的警告窗體,并帶有文字“嘿,你干嗎點我?”和一個“確定”
(OK)的按鈕。例中的“//”符號是JavaScript的注釋符號,即緊跟在此符號后邊的內(nèi)容
為注釋部分,此例中注釋內(nèi)容是“end function”,我習慣用這種方法來注釋,因為如
果"{"和"}"符號一多的話就分不清哪個"}"符號對應哪個"{"符號了。
這里要說明的是,函數(shù)并不一定要放到調(diào)用此函數(shù)的語句之前,您可以把函數(shù)放到
Html文件的最后面,當函數(shù)被調(diào)用時,它一樣可以執(zhí)行!不信您可以試試看!
我再提醒一下,請務必記住:JavaScript是區(qū)分大小寫的,所以函數(shù)名也必須區(qū)分
大小寫,函數(shù)talk()和Talk()、alert()和Alert()都是不同的函數(shù),您若是把函數(shù)alert()
改稱了Alert(),那將會出現(xiàn)腳本錯誤,因為JavaScript并沒有自帶函數(shù)Alert()。
例3 簡單函數(shù)調(diào)用
<html>
<head>
<title>簡單函數(shù)調(diào)用</title>
<script language="JavaScript">
<!--
function info(){
alert("請使用IE4.0以上版本,800*600分辨率瀏覽此網(wǎng)頁!");
}//end function
function hello(){
if(T1.value==""){
alert("對不起,請輸入您的姓名!");
}
else{
document.write("您好,"+T1.value+"!");
}//end if
}//end function
-->
</script>
</head>
<body onload="info()">
<p>請輸入您的姓名:<br>
<input type="text" name="T1" size="20"><input type="button"
value="問候……" name="B1"
onclick="hello()"></p>
</body>
</html>
此例的運行結(jié)果請點擊“在線示例”。
例3中出現(xiàn)了兩個函數(shù):info()和hello()。對于簡單的info()函數(shù)我就不多講了,它
是在Html文件被瀏覽器裝載時被調(diào)用的,調(diào)用的語句是:onload="info()",onload
事件者能放在<body>標簽中,并且當Html文件被瀏覽器裝載時觸發(fā)此事件。hello()
函數(shù)則是在名為"B1"的按鈕被按下時觸發(fā)的onclick事件調(diào)用,這個函數(shù)中有一個判斷
語句“if……else……”,該判斷語句的語法結(jié)構(gòu)如下:
if(判斷條件){
語句1;
語句2;
……
語句n;
}
else{
語句1;
語句2;
……
語句n;
}
判斷條件中的判斷符號可以是==(等于)、<(小于)、>(大于)、<=(小于等于)、>=
(大于等于)或!=(不等于)。特別要注意的是等于是==而不是=,不等于是!=而不是
<>。
在本例的if……else……語句中,出現(xiàn)了T1.value,它指代的是Html文檔中語句
<input type="text" name="T1" size="20">創(chuàng)建的文本框“T1”,輸入到此文
本框的文本可以使用T1.value調(diào)出來。加號“+”用于字符串的合并,例如變量str存
放著字符串“hello”,則 str+",the world!" 可得到字符串“hello,the world!”。
教程三、history對象
JavaScript提供了很多對象,我們先講一下history對象。history對象用來存儲客戶
機上的瀏覽器已經(jīng)訪問過的網(wǎng)址(URL),這些信息存儲在一個history列表中,通過對
history對象的引用,我們可以讓客戶機的瀏覽器返回到它曾經(jīng)訪問過的網(wǎng)頁去。其實
它的功能和瀏覽器(這里指的是中文IE)的工具欄上的“后退”和“前進”按鈕時一樣
的,下面看一個例子。
例4 history對象示例1
<html>
<head>
<title>history對象示例1</title>
</head>
<body>
<ul>
<li onclick="history.go(-2)">后退兩頁</li>
<li onclick="history.back()">后退一頁</li>
<li onclick="history.forward()">前進一頁</li>
<li onclick="history.go(2)">前進兩頁</li>
</ul>
</body>
</html>
此例中直接將JavaScript代碼加入到Html的標簽里邊,這是使用JavaScript比較簡
單的方法,但對于語句較多的代碼則不適合使用此方法。例4首先由Html代碼
<ul><li……>……</li></ul>列出了一個列表,當列表中的某一項被鼠標點擊時將觸
發(fā)onclick事件,此事件執(zhí)行JavaScript代碼,調(diào)用history對象的go()、back()或
forward()方法,這樣就使瀏覽器從新定位了。使用go()方法要加入?yún)?shù),此參數(shù)必須
為整數(shù),如-3、-2、-1、0、1、2、3……,go(0)是將瀏覽器定位到當前的位置,等
于是“刷新”了一下,負整數(shù)是后退到當前頁以前的那些頁面,其絕對值即是回退的頁
面數(shù),如go(-2)回退到在當前頁前邊訪問過的前兩頁,同理,正整數(shù)是前進到當前頁前
邊的那些頁面。back()方法是用來使瀏覽的頁面后退到當前頁的前一頁,相當于go(-
1),與之相反,forward()方法則是使瀏覽的頁面前進到當前頁的前一頁,相當于go
(1),注意:back()和forward()方法是不用加參數(shù)的。于是,例4也可以改成下邊的例
5,其作用是一樣的。
例5 history對象示例2
<html>
<head>
<title>history對象示例2</title>
</head>
<body>
<ul>
<li onclick="history.go(-2)">后退兩頁</li>
<li onclick="history.go(-1)">后退一頁</li>
<li onclick="history.go(1)">前進一頁</li>
<li onclick="history.go(2)">前進兩頁</li>
</ul>
</body>
</html>
教程四、window對象
window是JavaScript的高級對象,它是document、location和history對象的父對
象。正因為window是一個很高級的對象,所以通常在JavaScript代碼編寫中應用它的
方法、屬性時我們并不是必須寫出window對象,如引用window的parent屬性時:
window.parent可以簡單寫成parent。window的屬性有frames、parent、self、
top、status和defaultStatus等六個,下面請看例子。
例6 window對象示例
<html>
<head>
<title>window對象示例</title>
</head>
<script language="JavaScript">
<!--
function init(){
window.defaultStatus="這一頁是window對象示例!";
}
function windowOpener() {
msgWindow=open
("","NewWindow","toolbar=0,directories=0,menubar=0");
msgWindow.document.write("<head><title>window對象示例--新窗口
</title></head>");
msgWindow.document.write("<body><p>Hello,the world!</p><br>");
msgWindow.document.write("<p onclick='NewWindow.close()'>點擊此處可
以關閉窗口!</p></body>");
}
-->
</script>
<body onload="init()">
<p onmouseover="window.status='Hello,the world!';return true">將鼠標
放在上邊可以改變?yōu)g覽器的狀態(tài)欄</p>
<p><br>
</p>
<p onclick="windowOpener()">用鼠標點擊可以打開一個新的窗口!</p>
</body>
</html>
此例效果請看“在線示例”
在例6中,我使用了window對象的defaultStatus、status和self屬性,對于另
外的frames、parent、top屬性我們將會在以后的教程中講到。defaultStatus屬性
是用來設置瀏覽器的狀態(tài)欄(一般是在瀏覽器的下邊)顯示的默認文本,status則是用來
顯示瀏覽器當前狀態(tài)欄中的文本,它與defaultStatus是有所區(qū)別的。self屬性指代的
是當前窗口,它與window對象幾乎是指同一個東東,比如,您想調(diào)用window的
close()方法,則window.close()、self.close()和close()都將起到同樣的作用,即
關閉當前窗口。哈哈,這順便把window的close()方法也講了。
當例6被瀏覽器裝載時(即被瀏覽時),觸發(fā)window對象的onload()事件(與之相反
的是被卸載時將觸發(fā)window對象的onUnLoad事件),onload()事件調(diào)用函數(shù)init
(),在此函數(shù)中,window對象的defaultStatus屬性被設置為文本“這一頁是
window對象示例!”,這樣瀏覽器的狀態(tài)欄就顯示此文本了。對于語句<p
onmouseover="window.status='Hello,the world!';return true">將鼠標放在
上邊可以改變?yōu)g覽器的狀態(tài)欄</p>,當鼠標移動到文本上邊時,將觸發(fā)
onmouseover事件,執(zhí)行JavaScript代碼,代碼中將狀態(tài)欄的文本設置為
“Hello,the world!”,因為有兩條語句,所以要用分號(;)隔開,第二條語句return
true是不可缺少的,只有執(zhí)行了此語句狀態(tài)欄的文本設置才會生效。
現(xiàn)在我們要重點來講一下函數(shù)windowOpener()了,第一條語句使用了window
對象的open()方法,此方法用來打開一個新的窗口,它有三個參數(shù),前兩個是必須填寫
的,第三個則是可選的,有沒有都可以。語法如下
window.open("URL", "windowName", ["windowFeatures"])
URL是新窗口所要裝載的Html文件的網(wǎng)址和文件名,若此參數(shù)為"",則將打開一個空的
什么也沒有窗口(即沒有任何源代碼),您可以用我在前邊講的document.write()方法
在此窗口中輸入代碼,本例就是如此。第二個參數(shù)windowName是新開的窗口的名
字,此名字即是一個字符串,其中間不能有空格。第三個是可選參數(shù)
windowFeatures,它是用來設置新窗口的一些特征東東。如toolbar=0設置新窗口
中沒有滾動軸,menubar=0設置新窗口中不顯示菜單欄。參數(shù)之間要用逗號(“,”)隔
開而且不能有空格,其它參數(shù)如下:
toolbar[=yes|no]|[=1|0]
location[=yes|no]|[=1|0]
directories[=yes|no]|[=1|0]
status[=yes|no]|[=1|0]
menubar[=yes|no]|[=1|0]
scrollbars[=yes|no]|[=1|0]
resizable[=yes|no]|[=1|0]
copyhistory[=yes|no]|[=1|0]
width=pixels
height=pixels
從參數(shù)的英文中很容易看出各個參數(shù)的作用。中括號“[]”表示的是可選項,這些參
數(shù)很多都具有默認值yes或1,所以您也可以直接使用toolbar,它等價于
toolbar=yes或者toolbar=1,但對于no值和0值的設置則要寫全,即toolbar=no或
者toolbar=0,其它參數(shù)項頁是一樣的。好了,將完了open()方法,我們繼續(xù)下邊的
語句。程序中把新打開的窗口賦給了一個變量msgWindow,在JavaScript中,變量
并不是必須聲明了才可以使用,不聲明一樣用的很好,如果要聲明的話,請用語句
“var msgWindow;”,var即是用來聲明變量的。后面就使用了msgWindow變量
引用對象document的write()方法,因為msgWindow代表的是窗口對象,是老大,
document對象是窗口對象的子對象,所以引用時必須層層引用,即先寫
msgWindow,再寫document,然后才能引用document對象的write()方法。接下
來的語句就是往新的窗口里輸入代碼了,這里就不多講了。對于代碼<p
onclick='NewWindow.close()'>點擊此處可以關閉窗口!</p></body>,當鼠標
點擊此行文本后將觸發(fā)onclick()事件,執(zhí)行代碼NewWindow.close(),即把名為
NewWindow的新窗口關閉掉,此代碼也可寫成window.close(),因為
NewWindow指的就是當前的新窗口window。對于window對象的close()方法我在
前邊已經(jīng)講過了,就不多說了。
附:心夢網(wǎng)頁特效管理專家8.5XP的破解
這是一個作網(wǎng)頁、學javascript很好的東西,我剛學特效的時候,就用的他,但是有
二十次的限制,至今沒有找到破解的版本(大家找找,他的算法挺簡單的)
打開時:
他會說,“心夢網(wǎng)頁特效管理專家8.5XP”是共享軟件,你
如果不注冊,只能免費使用20次,注冊后可以享受到完
善的升級和技術支持服務。
不理他。
點“稍后注冊”
在下面有“軟件未注冊,你還能使用XX次”
我們知道這樣的軟件,一般是把注冊碼、使用次數(shù)保存在注冊表中,
替大家找到了,是
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Tele
phony\temp
下面的smyx項值為你的使用次數(shù),只要將其改為你想要的值即可:呵呵
By japanisapig