版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
/JavaScript簡介HYPERLINKJavaScript有什么特點(diǎn)JavaScript使網(wǎng)頁增加互動(dòng)性。JavaScript使有規(guī)律地重復(fù)的HTML文段簡化,減少下載時(shí)間。JavaScript能與時(shí)響應(yīng)用戶的操作,對提交表單做即時(shí)的檢查,無需浪費(fèi)時(shí)間交由CGI驗(yàn)證。JavaScript的特點(diǎn)是無窮無盡的,只要你有創(chuàng)意。HYPERLINKJava與JavaScript有什么不同很多人看到Java和JavaScript都有“Java”四個(gè)字,就以為它們是同一樣?xùn)|西,連我自己當(dāng)初也是這樣。其實(shí)它們是完完全全不同的兩種東西。Java,全稱應(yīng)該是JavaApplet,是嵌在網(wǎng)頁中,而又有自己獨(dú)立的運(yùn)行窗口的小程序。JavaApplet是預(yù)先編譯好的,一個(gè)Applet文件(.class)用Notepad打開閱讀,根本不能理解。JavaApplet的功能很強(qiáng)大,可以訪問http、ftp等協(xié)議,甚至可以在電腦上種病毒(已有先例了)。相比之下,JavaScript的能力就比較小了。JavaScript是一種“腳本”(“Script”),它直接把代碼寫到HTML文檔中,瀏覽器讀取它們的時(shí)候才進(jìn)行編譯、執(zhí)行,所以能查看HTML源文件就能查看JavaScript源代碼。JavaScript沒有獨(dú)立的運(yùn)行窗口,瀏覽器當(dāng)前窗口就是它的運(yùn)行窗口。它們的相同點(diǎn),我想只有同是以Java作編程語言一點(diǎn)了。HYPERLINK開發(fā)JavaScript該用什么軟件一個(gè)JavaScript程序其實(shí)是一個(gè)文檔,一個(gè)文本文件。它是嵌入到HTML文檔中的。所以,任何可以編寫HTML文檔的軟件都可以用來開發(fā)JavaScript。在此我推薦大家用FrontPage2000附帶的Microsoft腳本編輯器(在FrontPage菜單|工具|宏|Microsoft腳本編輯器)。它是個(gè)像VisualBasic/C++一樣的程序開發(fā)器,能對正在輸入的語句作出簡要提示。配合FrontPage2000,使工作量大大減少。HYPERLINKJavaScript語言的基礎(chǔ)HYPERLINK在什么地方插入JavaScriptJavaScript可以出現(xiàn)在HTML的任意地方。使用標(biāo)記<script>…</script>,你可以在HTML文檔的任意地方插入JavaScript,甚至在<HTML>之前插入也不成問題。不過如果要在聲明框架的網(wǎng)頁(框架網(wǎng)頁)中插入,就一定要在<frameset>之前插入,否則不會(huì)運(yùn)行?;靖袷?lt;script>
<!--
...
(JavaScript代碼)
...
//-->
</script>第二行和第四行的作用,是讓不懂<script>標(biāo)記的瀏覽器忽略JavaScript代碼。一般可以省略,因?yàn)楝F(xiàn)在想找不懂Script的瀏覽器,恐怕就連博物館里也沒有了。第四行前邊的雙反斜杠“//”是JavaScript里的注釋標(biāo)號(hào),以后將學(xué)到。另外一種插入JavaScript的方法,是把JavaScript代碼寫到另一個(gè)文件當(dāng)中(此文件通常應(yīng)該用“.js”作擴(kuò)展名),然后用格式為“<scriptsrc="javascript.js"></script>”的標(biāo)記把它嵌入到文檔中。注意,一定要用“</script>”標(biāo)記。參考<script>標(biāo)記還有一個(gè)屬性:language(縮寫lang),說明腳本使用的語言。對于JavaScript,請用“l(fā)anguage="JavaScript"”。參考相對于<script>標(biāo)記,還有一個(gè)<server>標(biāo)記。<server>標(biāo)記所包含的,是服務(wù)器端(ServerSide)的腳本。本教程只討論客戶器端(ClientSide)的JavaScript,也就是用<script>標(biāo)記包含的腳本。如果想在瀏覽器的“地址”欄中執(zhí)行JavaScript語句,用這樣的格式:javascript:<JavaScript語句>這樣的格式也可以用在連接中:<ahref="javascript:<JavaScript語句>">...</a>HYPERLINKJavaScript基本語法每一句JavaScript都有類似于以下的格式:<語句>;其中分號(hào)“;”是JavaScript語言作為一個(gè)語句結(jié)束的標(biāo)識(shí)符。雖然現(xiàn)在很多瀏覽器都允許用回車充當(dāng)結(jié)束符號(hào),培養(yǎng)用分號(hào)作結(jié)束的習(xí)慣仍然是很好的。語句塊語句塊是用大括號(hào)“{}”括起來的一個(gè)或n個(gè)語句。在大括號(hào)里邊是幾個(gè)語句,但是在大括號(hào)外邊,語句塊是被當(dāng)作一個(gè)語句的。語句塊是可以嵌套的,也就是說,一個(gè)語句塊里邊可以再包含一個(gè)或多個(gè)語句塊。HYPERLINKJavaScript中的變量HYPERLINK什么是變量從字面上看,變量是可變的量;從編程角度講,變量是用于存儲(chǔ)某種/某些數(shù)值的存儲(chǔ)器。所儲(chǔ)存的值,可以是數(shù)字、字符或其他的一些東西。HYPERLINK變量的命名變量的命名有以下要求:只包含字母、數(shù)字和/或下劃線;
要以字母開頭;
不能太長(其實(shí)有什么人喜歡使用又長又臭的名字呢?);
不能與JavaScript保留字(KeyWords,ReservedWords,數(shù)量繁多,不能一一列出;凡是可以用來做JavaScript命令的字都是保留字)重復(fù)。而且,變量是區(qū)分大小寫的,例如,variable和Variable是兩個(gè)不同的變量。不僅如此,大部分命令和“對象”(請參閱“對象化編程”章)都是區(qū)分大小寫的。提示給變量命名,最好避免用單個(gè)字母“a”“b”“c”等,而改用能清楚表達(dá)該變量在程序中的作用的詞語。這樣,不僅別人能更容易的了解你的程序,而且你在以后要修改程序的時(shí)候,也很快會(huì)記得該變量的作用。變量名一般用小寫,如果是由多個(gè)單詞組成的,那么第一個(gè)單詞用小寫,其他單詞的第一個(gè)字母用大寫。例如:myVariable和myAnotherVariable。這樣做僅僅是為了美觀和易讀,因?yàn)镴avaScript一些命令(以后將用更具體的方法闡述“命令”一詞)都是用這種方法命名的:indexOf;charAt等等。HYPERLINK變量需要聲明沒有聲明的變量不能使用,否則會(huì)出錯(cuò):“未定義”。聲明變量可以用:var<變量>[=<值>];var我們接觸的第一個(gè)關(guān)鍵字(即保留字)。這個(gè)關(guān)鍵字用作聲明變量。最簡單的聲明方法就是“var<變量>;”,這將為<變量>準(zhǔn)備內(nèi)存,給它賦初始值“null”。如果加上“=<值>”,則給<變量>賦予自定的初始值<值>。HYPERLINK數(shù)據(jù)類型變量可以用的數(shù)據(jù)類型有:整型只能儲(chǔ)存整數(shù)。可以是正整數(shù)、0、負(fù)整數(shù),可以是十進(jìn)制、八進(jìn)制、十六進(jìn)制。八進(jìn)制數(shù)的表示方法是在數(shù)字前加“0”,如“0123”表示八進(jìn)制數(shù)“123”。十六進(jìn)制則是加“0x”:“0xEF”表示十六進(jìn)制數(shù)“EF”。
浮點(diǎn)型即“實(shí)型”,能儲(chǔ)存小數(shù)。有資料顯示,某些平臺(tái)對浮點(diǎn)型變量的支持不穩(wěn)定。沒有需要就不要用浮點(diǎn)型。
字符串型是用引號(hào)“""”、“''”包起來的零個(gè)至多個(gè)字符。用單引號(hào)還是雙引號(hào)由你決定。跟語文一樣,用哪個(gè)引號(hào)開始就用哪個(gè)結(jié)束,而且單雙引號(hào)可嵌套使用:'這里是"JavaScript教程"。'不過跟語文不同的是,JavaScript中引號(hào)的嵌套只能有一層。如果想再多嵌一些,你需要轉(zhuǎn)義字符:
轉(zhuǎn)義字符由于一些字符在屏幕上不能顯示,或者JavaScript語法上已經(jīng)有了特殊用途,在要用這些字符時(shí),就要使用“轉(zhuǎn)義字符”。轉(zhuǎn)義字符用斜杠“\”開頭:\'單引號(hào)、\"雙引號(hào)、\n換行符、\r回車(以上只列出常用的轉(zhuǎn)義字符)。于是,使用轉(zhuǎn)義字符,就可以做到引號(hào)多重嵌套:'Micro說:"這里是\"JavaScript教程\"。"'
布爾型常用于判斷,只有兩個(gè)值可選:true(表“真”)和false(表“假”)。true和false是JavaScript的保留字。它們屬于“常數(shù)”。
對象關(guān)于對象,在“對象化編程”一章將詳細(xì)講到。由于JavaScript對數(shù)據(jù)類型的要求不嚴(yán)格,一般來說,聲明變量的時(shí)候不需要聲明類型。而且就算聲明了類型,在過程中還可以給變量賦予其他類型的值。聲明類型可以用賦予初始值的方法做到:varaString='';這將把a(bǔ)String定義為具有空值的字符串型變量。varanInteger=0;這將把a(bǔ)nInteger定義為值為0的整型。HYPERLINK變量的賦值一個(gè)變量聲明后,可以在任何時(shí)候?qū)ζ滟x值。賦值的語法是:<變量>=<表達(dá)式>;其中“=”叫“賦值符”,它的作用是把右邊的值賦給左邊的變量。下一節(jié)將討論到表達(dá)式。HYPERLINKJavaScript常數(shù)有下列幾個(gè):null一個(gè)特殊的空值。當(dāng)變量未定義,或者定義之后沒有對其進(jìn)行任何賦值操作,它的值就是“null”。企圖返回一個(gè)不存在的對象時(shí)也會(huì)出現(xiàn)null值。
NaN“NotaNumber”。出現(xiàn)這個(gè)數(shù)值比較少見,以至于我們可以不理它。當(dāng)運(yùn)算無法返回正確的數(shù)值時(shí),就會(huì)返回“NaN”值。NaN值非常特殊,因?yàn)樗安皇菙?shù)字”,所以任何數(shù)跟它都不相等,甚至NaN本身也不等于NaN。
true布爾值“真”。用通俗的說法,“對”。
false布爾值“假”。用通俗的說法,“錯(cuò)”。在Math對象中還有一系列數(shù)學(xué)常數(shù)。這將在討論“對象化編程”時(shí)談到。HYPERLINK表達(dá)式與運(yùn)算符表達(dá)式與數(shù)學(xué)中的定義相似,表達(dá)式是指具有一定的值的、用運(yùn)算符把常數(shù)和變量連接起來的代數(shù)式。一個(gè)表達(dá)式可以只包含一個(gè)常數(shù)或一個(gè)變量。運(yùn)算符可以是四則運(yùn)算符、關(guān)系運(yùn)算符、位運(yùn)算符、邏輯運(yùn)算符、復(fù)合運(yùn)算符。下表將這些運(yùn)算符從高優(yōu)先級到低優(yōu)先級排列:括號(hào)(x)[x]中括號(hào)只用于指明數(shù)組的下標(biāo)求反、
自加、
自減-x返回x的相反數(shù)!x返回與x(布爾值)相反的布爾值x++x值加1,但仍返回原來的x值x--x值減1,但仍返回原來的x值++xx值加1,返回后來的x值--xx值減1,返回后來的x值乘、除x*y返回x乘以y的值x/y返回x除以y的值x%y返回x與y的模(x除以y的余數(shù))加、減x+y返回x加y的值x-y返回x減y的值關(guān)系運(yùn)算x<yx<=y
x>=yx>y當(dāng)符合條件時(shí)返回true值,否則返回false值等于、
不等于x==y當(dāng)x等于y時(shí)返回true值,否則返回false值x!=y當(dāng)x不等于y時(shí)返回true值,否則返回false值位與x&y當(dāng)兩個(gè)數(shù)位同時(shí)為1時(shí),返回的數(shù)據(jù)的當(dāng)前數(shù)位為1,其他情況都為0位異或x^y兩個(gè)數(shù)位中有且只有一個(gè)為0時(shí),返回0,否則返回1位或x|y兩個(gè)數(shù)位中只要有一個(gè)為1,則返回1;當(dāng)兩個(gè)數(shù)位都為零時(shí)才返回零位運(yùn)算符通常會(huì)被當(dāng)作邏輯運(yùn)算符來使用。它的實(shí)際運(yùn)算情況是:把兩個(gè)操作數(shù)(即x和y)化成二進(jìn)制數(shù),對每個(gè)數(shù)位執(zhí)行以上所列工作,然后返回得到的新二進(jìn)制數(shù)。由于“真”值在電腦內(nèi)部(通常)是全部數(shù)位都是1的二進(jìn)制數(shù),而“假”值則是全部是0的二進(jìn)制數(shù),所以位運(yùn)算符也可以充當(dāng)邏輯運(yùn)算符。邏輯與x&&y當(dāng)x和y同時(shí)為true時(shí)返回true,否則返回false邏輯或x||y當(dāng)x和y任意一個(gè)為true時(shí)返回true,當(dāng)兩者同時(shí)為false時(shí)返回false邏輯與/或有時(shí)候被稱為“快速與/或”。這是因?yàn)楫?dāng)?shù)谝徊僮鲾?shù)(x)已經(jīng)可以決定結(jié)果,它們將不去理會(huì)y的值。例如,false&&y,因?yàn)閤==false,不管y的值是什么,結(jié)果始終是false,于是本表達(dá)式立即返回false,而不論y是多少,甚至y可以導(dǎo)致出錯(cuò),程序也可以照樣運(yùn)行下去。條件c?x:y當(dāng)條件c為true時(shí)返回x的值(執(zhí)行x語句),否則返回y的值(執(zhí)行y語句)賦值、
復(fù)合運(yùn)算x=y把y的值賦給x,返回所賦的值x+=yx-=yx*=y
x/=yx%=yx與y相加/減/乘/除/求余,所得結(jié)果賦給x,并返回x賦值后的值注意所有與四則運(yùn)算有關(guān)的運(yùn)算符都不能作用在字符串型變量上。字符串可以使用+、+=作為連接兩個(gè)字符串之用。提示請密切注意運(yùn)算的優(yōu)先級。編程時(shí)如果不記得運(yùn)算符的優(yōu)先級,可以使用括號(hào)()。例如:(a==0)||(b==0)。一些用來賦值的表達(dá)式,由于有返回的值,可以加以利用。例如,用以下語句:a=b=c=10,可以一次對三個(gè)變量賦值。HYPERLINK語句下面將開始討論JavaScript基本編程命令,或者叫“語句”。HYPERLINK注釋像其他所有語言一樣,JavaScript的注釋在運(yùn)行時(shí)也是被忽略的。注釋只給程序員提供消息。JavaScript注釋有兩種:單行注釋和多行注釋。單行注釋用雙反斜杠“//”表示。當(dāng)一行代碼有“//”,那么,“//”后面的部分將被忽略。而多行注釋是用“/*”和“*/”括起來的一行到多行文字。程序執(zhí)行到“/*”處,將忽略以后的所有文字,直到出現(xiàn)“*/”為止。提示如果你的程序需要草稿,或者需要讓別人閱讀,注釋能幫上大忙。養(yǎng)成寫注釋的習(xí)慣,能節(jié)省你和其他程序員的寶貴時(shí)間,使他們不用花費(fèi)多余的時(shí)間琢磨你的程序。在程序調(diào)試的時(shí)候,有時(shí)需要把一段代碼換成另一段,或者暫時(shí)不要一段代碼。這時(shí)最忌用Delete鍵,如果想要回那段代碼怎么辦?最好還是用注釋,把暫時(shí)不要的代碼“隱”去,到確定方法以后再刪除也不遲。HYPERLINKif語句if(<條件>)<語句1>[else<語句2>];本語句有點(diǎn)象條件表達(dá)式“?:”:當(dāng)<條件>為真時(shí)執(zhí)行<語句1>,否則,如果else部分存在的話,就執(zhí)行<語句2>。與“?:”不同的是,if只是一條語句,不會(huì)返回?cái)?shù)值。<條件>是布爾值,必須用小括號(hào)括起來;<語句1>和<語句2>都只能是一個(gè)語句,欲使用多條語句,請用語句塊。注意請看下例:if(a==1)
if(b==0)alert(a+b);
else
alert(a-b);本代碼企圖用縮進(jìn)的方法說明else是對應(yīng)if(a==1)的,但是實(shí)際上,由于else與if(b==0)最相近,本代碼不能按作者的想法運(yùn)行。正確的代碼是if(a==1){
if(b==0)alert(a+b);
}else{
alert(a-b);
}提示一行代碼太長,或者涉與到比較復(fù)雜的嵌套,可以考慮用多行文本,如上例,if(a==1)后面沒有立即寫上語句,而是換一行再繼續(xù)寫。瀏覽器不會(huì)混淆的,當(dāng)它們讀完一行,發(fā)現(xiàn)是一句未完成語句,它們會(huì)繼續(xù)往下讀。使用縮進(jìn)也是很好的習(xí)慣,當(dāng)一些語句與上面的一兩句語句有從屬關(guān)系時(shí),使用縮進(jìn)能使程序更易讀,方便程序員進(jìn)行編寫或修改工作。
HYPERLINK循環(huán)體for(<變量>=<初始值>;<循環(huán)條件>;<變量累加方法>)<語句>;本語句的作用是重復(fù)執(zhí)行<語句>,直到<循環(huán)條件>為false為止。它是這樣運(yùn)作的:首先給<變量>賦<初始值>,然后*判斷<循環(huán)條件>(應(yīng)該是一個(gè)關(guān)于<變量>的條件表達(dá)式)是否成立,如果成立就執(zhí)行<語句>,然后按<變量累加方法>對<變量>作累加,回到“*”處重復(fù),如果不成立就退出循環(huán)。這叫做“for循環(huán)”。下面看看例子。for(i=1;i<10;i++)document.write(i);本語句先給i賦初始值1,然后執(zhí)行document.write(i)語句(作用是在文檔中寫i的值,請參越“對象化編程”一章);重復(fù)時(shí)i++,也就是把i加1;循環(huán)直到i<10不滿足,也就是i>=10時(shí)結(jié)束。結(jié)果是在文檔中輸出了“123456789”。和if語句一樣,<語句>只能是一行語句,如果想用多條語句,你需要用語句塊。與其他語言不同,JavaScript的for循環(huán)沒有規(guī)定循環(huán)變量每次循環(huán)一定要加一或減一,<變量累加方法>可以是任意的賦值表達(dá)式,如i+=3、i*=2、i-=j等都成立。提示適當(dāng)?shù)氖褂胒or循環(huán),能使HTML文檔中大量的有規(guī)律重復(fù)的部分簡化,也就是用for循環(huán)重復(fù)寫一些HTML代碼,達(dá)到提高網(wǎng)頁下載速度的目的。不過請?jiān)贜etscape中重復(fù)進(jìn)行嚴(yán)格測試,保證通過了才好把網(wǎng)頁傳上去。作者曾試過多次因?yàn)橛胒or循環(huán)向文檔重復(fù)寫HTML代碼而導(dǎo)致Netscape“猝死”。IE中絕對沒有這種事情發(fā)生,如果你的網(wǎng)也是只給IE看的,用多多的for也沒問題。除了for循環(huán),JavaScript還提供while循環(huán)。while(<循環(huán)條件>)<語句>;比for循環(huán)簡單,while循環(huán)的作用是當(dāng)滿足<循環(huán)條件>時(shí)執(zhí)行<語句>。while循環(huán)的累加性質(zhì)沒有for循環(huán)強(qiáng)。<語句>也只能是一條語句,但是一般情況下都使用語句塊,因?yàn)槌艘貜?fù)執(zhí)行某些語句之外,還需要一些能變動(dòng)<循環(huán)條件>所涉與的變量的值的語句,否則一但踏入此循環(huán),就會(huì)因?yàn)闂l件總是滿足而一直困在循環(huán)里面,不能出來。這種情況,我們習(xí)慣稱之為“死循環(huán)”。死循環(huán)會(huì)弄停當(dāng)時(shí)正在運(yùn)行的代碼、正在下載的文檔,和占用很大的內(nèi)存,很可能造成死機(jī),應(yīng)該盡最大的努力避免。break和continue有時(shí)候在循環(huán)體內(nèi),需要立即跳出循環(huán)或跳過循環(huán)體內(nèi)其余代碼而進(jìn)行下一次循環(huán)。break和continue幫了我們大忙。break;本語句放在循環(huán)體內(nèi),作用是立即跳出循環(huán)。continue;本語句放在循環(huán)體內(nèi),作用是中止本次循環(huán),并執(zhí)行下一次循環(huán)。如果循環(huán)的條件已經(jīng)不符合,就跳出循環(huán)。例for(i=1;i<10;i++){
if(i==3||i==5||i==8)continue;
document.write(i);
}輸出:124679。HYPERLINKswitch語句如果要把某些數(shù)據(jù)分類,例如,要把學(xué)生的成績按優(yōu)、良、中、差分類,我們可能會(huì)用if語句:if(score>=0&&score<60){
result='fail';
}elseif(score<80){
result='pass';
}elseif(score<90){
result='good';
}elseif(score<=100){
result='excellent';
}else{
result='error';
}看起來沒有問題,但使用太多的if語句的話,程序看起來有點(diǎn)亂。switch語句就是解決這種問題的最好方法。switch(e){
caser1:(注意:冒號(hào))
...
[break;]
caser2:
...
[break;]
...
[default:
...]
}這一大段的作用是:計(jì)算e的值(e為表達(dá)式),然后跟下邊“case”后的r1、r2……比較,當(dāng)找到一個(gè)相等于e的值時(shí),就執(zhí)行該“case”后的語句,直到遇到break語句或switch段落結(jié)束(“}”)。如果沒有一個(gè)值與e匹配,那么就執(zhí)行“default:”后邊的語句,如果沒有default塊,switch語句結(jié)束。上邊的if段用switch改寫就是:switch(parseInt(score/10)){
case0:
case1:
case2:
case3:
case4:
case5:
result='fail';
break;
case6:
case7:
result='pass';
break;
case8:
result='good';
break;
case9:
result='excellent';
break;
default:
if(score==100)
result='excellent';
else
result='error';
}其中parseInt()方法是以后會(huì)介紹的,作用是取整。最后default段用的if語句,是為了不把100分當(dāng)錯(cuò)誤論(parseInt(100/10)==10)。.HYPERLINK對象化編程JavaScript是使用“對象化編程”的,或者叫“面向?qū)ο缶幊獭钡?。所謂“對象化編程”,意思是把JavaScript能涉與的范圍劃分成大大小小的對象,對象下面還繼續(xù)劃分對象直至非常詳細(xì)為止,所有的編程都以對象為出發(fā)點(diǎn),基于對象。小到一個(gè)變量,大到網(wǎng)頁文檔、窗口甚至屏幕,都是對象。這一章將“面向?qū)ο蟆敝v述JavaScript的運(yùn)行情況。HYPERLINK對象的基本知識(shí)對象是可以從JavaScript“勢力范圍”中劃分出來的一小塊,可以是一段文字、一幅圖片、一個(gè)表單(Form)等等。每個(gè)對象有它自己的屬性、方法和事件。對象的屬性是反映該對象某些特定的性質(zhì)的,例如:字符串的長度、圖像的長寬、文字框(Textbox)里的文字等等;對象的方法能對該對象做一些事情,例如,表單的“提交”(Submit),窗口的“滾動(dòng)”(Scrolling)等等;而對象的事件就能響應(yīng)發(fā)生在對象上的事情,例如提交表單產(chǎn)生表單的“提交事件”,點(diǎn)擊連接產(chǎn)生的“點(diǎn)擊事件”。不是所有的對象都有以上三個(gè)性質(zhì),有些沒有事件,有些只有屬性。引用對象的任一“性質(zhì)”用“<對象名>.<性質(zhì)名>”這種方法。HYPERLINK基本對象現(xiàn)在我們要復(fù)習(xí)以上學(xué)過的內(nèi)容了——把一些數(shù)據(jù)類型用對象的角度重新學(xué)習(xí)一下。HYPERLINKNumber“數(shù)字”對象。這個(gè)對象用得很少,作者就一次也沒有見過。不過屬于“Number”的對象,也就是“變量”就多了。屬性MAX_VALUE用法:Number.MAX_VALUE;返回“最大值”。
MIN_VALUE用法:Number.MIN_VALUE;返回“最小值”。
NaN用法:Number.NaN或NaN;返回“NaN”。“NaN”(不是數(shù)值)在很早就介紹過了。
NEGATIVE_INFINITY用法:Number.NEGATIVE_INFINITY;返回:負(fù)無窮大,比“最小值”還小的值。
POSITIVE_INFINITY用法:Number.POSITIVE_INFINITY;返回:正無窮大,比“最大值”還大的值。方法toString()用法:<數(shù)值變量>.toString();返回:字符串形式的數(shù)值。如:若a==123;則a.toString()=='123'。HYPERLINKString字符串對象。聲明一個(gè)字符串對象最簡單、快捷、有效、常用的方法就是直接賦值。屬性length用法:<字符串對象>.length;返回該字符串的長度。方法charAt()用法:<字符串對象>.charAt(<位置>);返回該字符串位于第<位置>位的單個(gè)字符。注意:字符串中的一個(gè)字符是第0位的,第二個(gè)才是第1位的,最后一個(gè)字符是第length-1位的。
charCodeAt()用法:<字符串對象>.charCodeAt(<位置>);返回該字符串位于第<位置>位的單個(gè)字符的ASCII碼。
fromCharCode()用法:String.fromCharCode(a,b,c...);返回一個(gè)字符串,該字符串每個(gè)字符的ASCII碼由a,b,c...等來確定。
indexOf()用法:<字符串對象>.indexOf(<另一個(gè)字符串對象>[,<起始位置>]);該方法從<字符串對象>中查找<另一個(gè)字符串對象>(如果給出<起始位置>就忽略之前的位置),如果找到了,就返回它的位置,沒有找到就返回“-1”。所有的“位置”都是從零開始的。
lastIndexOf()用法:<字符串對象>.lastIndexOf(<另一個(gè)字符串對象>[,<起始位置>]);跟indexOf()相似,不過是從后邊開始找。
split()用法:<字符串對象>.split(<分隔符字符>);返回一個(gè)數(shù)組,該數(shù)組是從<字符串對象>中分離開來的,<分隔符字符>決定了分離的地方,它本身不會(huì)包含在所返回的數(shù)組中。例如:'1&2&345&678'.split('&')返回?cái)?shù)組:1,2,345,678。關(guān)于數(shù)組,我們等一下就討論。
substring()用法:<字符串對象>.substring(<始>[,<終>]);返回原字符串的子字符串,該字符串是原字符串從<始>位置到<終>位置的前一位置的一段。<終>-<始>=返回字符串的長度(length)。如果沒有指定<終>或指定得超過字符串長度,則子字符串從<始>位置一直取到原字符串尾。如果所指定的位置不能返回字符串,則返回空字符串。
substr()用法:<字符串對象>.substr(<始>[,<長>]);返回原字符串的子字符串,該字符串是原字符串從<始>位置開始,長度為<長>的一段。如果沒有指定<長>或指定得超過字符串長度,則子字符串從<始>位置一直取到原字符串尾。如果所指定的位置不能返回字符串,則返回空字符串。
toLowerCase()用法:<字符串對象>.toLowerCase();返回把原字符串所有大寫字母都變成小寫的字符串。
toUpperCase()用法:<字符串對象>.toUpperCase();返回把原字符串所有小寫字母都變成大寫的字符串。HYPERLINKArray數(shù)組對象。數(shù)組對象是一個(gè)對象的集合,里邊的對象可以是不同類型的。數(shù)組的每一個(gè)成員對象都有一個(gè)“下標(biāo)”,用來表示它在數(shù)組中的位置(既然是“位置”,就也是從零開始的啦)。數(shù)組的定義方法:var<數(shù)組名>=newArray();這樣就定義了一個(gè)空數(shù)組。以后要添加數(shù)組元素,就用:<數(shù)組名>[<下標(biāo)>]=...;注意這里的方括號(hào)不是“可以省略”的意思,數(shù)組的下標(biāo)表示方法就是用方括號(hào)括起來。如果想在定義數(shù)組的時(shí)候直接初始化數(shù)據(jù),請用:var<數(shù)組名>=newArray(<元素1>,<元素2>,<元素3>...);例如,varmyArray=newArray(1,4.5,'Hi');定義了一個(gè)數(shù)組myArray,里邊的元素是:myArray[0]==1;myArray[1]==4.5;myArray[2]=='Hi'。但是,如果元素列表中只有一個(gè)元素,而這個(gè)元素又是一個(gè)正整數(shù)的話,這將定義一個(gè)包含<正整數(shù)>個(gè)空元素的數(shù)組。注意:JavaScript只有一維數(shù)組!千萬不要用“Array(3,4)”這種愚蠢的方法來定義4x5的二維數(shù)組,或者用“myArray[2,3]”這種方法來返回“二維數(shù)組”中的元素。任意“myArray[...,3]”這種形式的調(diào)用其實(shí)只返回了“myArray[3]”。要使用多維數(shù)組,請用這種虛擬法:varmyArray=newArray(newArray(),newArray(),newArray(),...);其實(shí)這是一個(gè)一維數(shù)組,里邊的每一個(gè)元素又是一個(gè)數(shù)組。調(diào)用這個(gè)“二維數(shù)組”的元素時(shí):myArray[2][3]=...;屬性length用法:<數(shù)組對象>.length;返回:數(shù)組的長度,即數(shù)組里有多少個(gè)元素。它等于數(shù)組里最后一個(gè)元素的下標(biāo)加一。所以,想添加一個(gè)元素,只需要:myArray[myArray.length]=...。方法join()用法:<數(shù)組對象>.join(<分隔符>);返回一個(gè)字符串,該字符串把數(shù)組中的各個(gè)元素串起來,用<分隔符>置于元素與元素之間。這個(gè)方法不影響數(shù)組原本的內(nèi)容。
reverse()用法:<數(shù)組對象>.reverse();使數(shù)組中的元素順序反過來。如果對數(shù)組[1,2,3]使用這個(gè)方法,它將使數(shù)組變成:[3,2,1]。
slice()用法:<數(shù)組對象>.slice(<始>[,<終>]);返回一個(gè)數(shù)組,該數(shù)組是原數(shù)組的子集,始于<始>,終于<終>。如果不給出<終>,則子集一直取到原數(shù)組的結(jié)尾。
sort()用法:<數(shù)組對象>.sort([<方法函數(shù)>]);使數(shù)組中的元素按照一定的順序排列。如果不指定<方法函數(shù)>,則按字母順序排列。在這種情況下,80是比9排得前的。如果指定<方法函數(shù)>,則按<方法函數(shù)>所指定的排序方法排序。<方法函數(shù)>比較難講述,這里只將一些有用的<方法函數(shù)>介紹給大家。按升序排列數(shù)字:functionsortMethod(a,b){
returna-b;
}
myArray.sort(sortMethod);按降序排列數(shù)字:把上面的“a-b”該成“b-a”。有關(guān)函數(shù),請看下面。HYPERLINKMath“數(shù)學(xué)”對象,提供對數(shù)據(jù)的數(shù)學(xué)計(jì)算。下面所提到的屬性和方法,不再詳細(xì)說明“用法”,大家在使用的時(shí)候記住用“Math.<名>”這種格式。屬性E返回常數(shù)e(2.718281828...)。
LN2返回2的自然對數(shù)(ln2)。
LN10返回10的自然對數(shù)(ln10)。
LOG2E返回以2為低的e的對數(shù)(log2e)。
LOG10E返回以10為低的e的對數(shù)(log10e)。
PI返回π(3.1415926535...)。
SQRT1_2返回1/2的平方根。
SQRT2返回2的平方根。方法abs(x)返回x的絕對值。
acos(x)返回x的反余弦值(余弦值等于x的角度),用弧度表示。
asin(x)返回x的反正弦值。
atan(x)返回x的反正切值。
atan2(x,y)返回復(fù)平面內(nèi)點(diǎn)(x,y)對應(yīng)的復(fù)數(shù)的幅角,用弧度表示,其值在-π到π之間。
ceil(x)返回大于等于x的最小整數(shù)。
cos(x)返回x的余弦。
exp(x)返回e的x次冪(ex)。
floor(x)返回小于等于x的最大整數(shù)。
log(x)返回x的自然對數(shù)(lnx)。
max(a,b)返回a,b中較大的數(shù)。
min(a,b)返回a,b中較小的數(shù)。
pow(n,m)返回n的m次冪(nm)。
random()返回大于0小于1的一個(gè)隨機(jī)數(shù)。
round(x)返回x四舍五入后的值。
sin(x)返回x的正弦。
sqrt(x)返回x的平方根。
tan(x)返回x的正切。HYPERLINKDate日期對象。這個(gè)對象可以儲(chǔ)存任意一個(gè)日期,從0001年到9999年,并且可以精確到毫秒數(shù)(1/1000秒)。在內(nèi)部,日期對象是一個(gè)整數(shù),它是從1970年1月1日零時(shí)正開始計(jì)算到日期對象所指的日期的毫秒數(shù)。如果所指日期比1970年早,則它是一個(gè)負(fù)數(shù)。所有日期時(shí)間,如果不指定時(shí)區(qū),都采用“UTC”(世界時(shí))時(shí)區(qū),它與“GMT”(格林威治時(shí)間)在數(shù)值上是一樣的。定義一個(gè)日期對象:vard=newDate;這個(gè)方法使d成為日期對象,并且已有初始值:當(dāng)前時(shí)間。如果要自定初始值,可以用:vard=newDate(99,10,1);//99年10月1日
vard=newDate('Oct1,1999');//99年10月1日等等方法。最好的方法就是用下面介紹的“方法”來嚴(yán)格的定義時(shí)間。方法以下有很多“g/set[UTC]XXX”這樣的方法,它表示既有“getXXX”方法,又有“setXXX”方法?!癵et”是獲得某個(gè)數(shù)值,而“set”是設(shè)定某個(gè)數(shù)值。如果帶有“UTC”字母,則表示獲得/設(shè)定的數(shù)值是基于UTC時(shí)間的,沒有則表示基于本地時(shí)間或?yàn)g覽期默認(rèn)時(shí)間的。如無說明,方法的使用格式為:“<對象>.<方法>”,下同。g/set[UTC]FullYear()返回/設(shè)置年份,用四位數(shù)表示。如果使用“x.set[UTC]FullYear(99)”,則年份被設(shè)定為0099年。
g/set[UTC]Year()返回/設(shè)置年份,用兩位數(shù)表示。設(shè)定的時(shí)候?yàn)g覽器自動(dòng)加上“19”開頭,故使用“x.set[UTC]Year(00)”把年份設(shè)定為1900年。
g/set[UTC]Month()返回/設(shè)置月份。
g/set[UTC]Date()返回/設(shè)置日期。
g/set[UTC]Day()返回/設(shè)置星期,0表示星期天。
g/set[UTC]Hours()返回/設(shè)置小時(shí)數(shù),24小時(shí)制。
g/set[UTC]Minutes()返回/設(shè)置分鐘數(shù)。
g/set[UTC]Seconds()返回/設(shè)置秒鐘數(shù)。
g/set[UTC]Milliseconds()返回/設(shè)置毫秒數(shù)。
g/setTime()返回/設(shè)置時(shí)間,該時(shí)間就是日期對象的內(nèi)部處理方法:從1970年1月1日零時(shí)正開始計(jì)算到日期對象所指的日期的毫秒數(shù)。如果要使某日期對象所指的時(shí)間推遲1小時(shí),就用:“x.setTime(x.getTime()+60*60*1000);”(一小時(shí)60分,一分60秒,一秒1000毫秒)。
getTimezoneOffset()返回日期對象采用的時(shí)區(qū)與格林威治時(shí)間所差的分鐘數(shù)。在格林威治東方的市區(qū),該值為負(fù),例如:中國時(shí)區(qū)(GMT+0800)返回“-480”。
toString()返回一個(gè)字符串,描述日期對象所指的日期。這個(gè)字符串的格式類似于:“FriJul2115:43:46UTC+08002000”。
toLocaleString()返回一個(gè)字符串,描述日期對象所指的日期,用本地時(shí)間表示格式。如:“2000-07-2115:43:46”。
toGMTString()返回一個(gè)字符串,描述日期對象所指的日期,用GMT格式。
toUTCString()返回一個(gè)字符串,描述日期對象所指的日期,用UTC格式。
parse()用法:Date.parse(<日期對象>);返回該日期對象的內(nèi)部表達(dá)方式。HYPERLINK全局對象全局對象從不現(xiàn)形,它可以說是虛擬出來的,目的在于把全局函數(shù)“對象化”。在MicrosoftJScript語言參考中,它叫做“Global對象”,但是引用它的方法和屬性從來不用“Global.xxx”(況且這樣做會(huì)出錯(cuò)),而直接用“xxx”。屬性NaN一早就說過了。方法eval()把括號(hào)內(nèi)的字符串當(dāng)作標(biāo)準(zhǔn)語句或表達(dá)式來運(yùn)行。
isFinite()如果括號(hào)內(nèi)的數(shù)字是“有限”的(介于Number.MIN_VALUE和Number.MAX_VALUE之間)就返回true;否則返回false。
isNaN()如果括號(hào)內(nèi)的值是“NaN”則返回true否則返回false。
parseInt()返回把括號(hào)內(nèi)的內(nèi)容轉(zhuǎn)換成整數(shù)之后的值。如果括號(hào)內(nèi)是字符串,則字符串開頭的數(shù)字部分被轉(zhuǎn)換成整數(shù),如果以字母開頭,則返回“NaN”。
parseFloat()返回把括號(hào)內(nèi)的字符串轉(zhuǎn)換成浮點(diǎn)數(shù)之后的值,字符串開頭的數(shù)字部分被轉(zhuǎn)換成浮點(diǎn)數(shù),如果以字母開頭,則返回“NaN”。
toString()用法:<對象>.toString();把對象轉(zhuǎn)換成字符串。如果在括號(hào)中指定一個(gè)數(shù)值,則轉(zhuǎn)換過程中所有數(shù)值轉(zhuǎn)換成特定進(jìn)制。
escape()返回括號(hào)中的字符串經(jīng)過編碼后的新字符串。該編碼應(yīng)用于URL,也就是把空格寫成“%20”這種格式?!?”不被編碼,如果要“+”也被編碼,請用:escape('...',1)。
unescape()是escape()的反過程。解編括號(hào)中字符串成為一般字符串。HYPERLINK函數(shù)HYPERLINK函數(shù)的定義所謂“函數(shù)”,是有返回值的對象或?qū)ο蟮姆椒?。HYPERLINK函數(shù)的種類常見的函數(shù)有:構(gòu)造函數(shù),如Array(),能構(gòu)造一個(gè)數(shù)組;全局函數(shù),即全局對象里的方法;自定義函數(shù);等等。HYPERLINK自定義函數(shù)定義函數(shù)用以下語句:function函數(shù)名([參數(shù)集]){
...
[return[<值>];]
...
}其中,用在function之后和函數(shù)結(jié)尾的大括號(hào)是不能省去的,就算整個(gè)函數(shù)只有一句。函數(shù)名與變量名有一樣的起名規(guī)定,也就是只包含字母數(shù)字下劃線、字母排頭、不能與保留字重復(fù)等。參數(shù)集可有可無,但括號(hào)就一定要有。參數(shù)是函數(shù)外部向函數(shù)內(nèi)部傳遞信息的橋梁,例如,想叫一個(gè)函數(shù)返回3的立方,你就要讓函數(shù)知道“3”這個(gè)數(shù)值,這時(shí)候就要有一個(gè)變量來接收數(shù)值,這種變量叫做參數(shù)。參數(shù)集是一個(gè)或多個(gè)用逗號(hào)分隔開來的參數(shù)的集合,如:a,b,c。函數(shù)的內(nèi)部有一至多行語句,這些語句并不會(huì)立即執(zhí)行,而只當(dāng)有其它程序調(diào)用它時(shí)才執(zhí)行。這些語句中可能包含“return”語句。在執(zhí)行一個(gè)函數(shù)的時(shí)候,碰到return語句,函數(shù)立刻停止執(zhí)行,并返回到調(diào)用它的程序中。如果“return”后帶有<值>,則退出函數(shù)的同時(shí)返回該值。在函數(shù)的內(nèi)部,參數(shù)可以直接當(dāng)作變量來使用,并可以用var語句來新建一些變量,但是這些變量都不能被函數(shù)外部的過程調(diào)用。要使函數(shù)內(nèi)部的信息能被外部調(diào)用,要么使用“return”返回值,要么使用全局變量。全局變量在Script的“根部”(非函數(shù)內(nèi)部)的“var”語句所定義的變量就是全局變量,它能在整個(gè)過程的任意地方被調(diào)用、更改。例functionaddAll(a,b,c){
returna+b+c;
}
vartotal=addAll(3,4,5);這個(gè)例子建立了一個(gè)叫“addAll”的函數(shù),它有3個(gè)參數(shù):a,b,c,作用是返回三個(gè)數(shù)相加的結(jié)果。在函數(shù)外部,利用“vartotal=addAll(3,4,5);”接收函數(shù)的返回值。更多的時(shí)候,函數(shù)是沒有返回值的,這種函數(shù)在一些比較強(qiáng)調(diào)嚴(yán)格的語言中是叫做“過程”的,例如Basic類語言的“Sub”、Pascal語言的“procedure”。屬性arguments一個(gè)數(shù)組,反映外部程序調(diào)用函數(shù)時(shí)指定的參數(shù)。用法:直接在函數(shù)內(nèi)部調(diào)用“arguments”。.HYPERLINK文檔對象現(xiàn)在我們將開始討論更“實(shí)際”的話題——文檔對象(DOM)。文檔對象是指在網(wǎng)頁文檔里劃分出來的對象。在JavaScript能夠涉與的范圍內(nèi)有如下幾個(gè)“大”對象:window,document,location,navigator,screen,history等。下面是一個(gè)文檔對象樹,你可以看到對象下包含對象的“壯觀”情景。要引用某個(gè)對象,就要把父級的對象都列出來。例如,要引用某表單“applicationForm”的某文字框“customerName”,就要用“document.applicationForm.customerName”。下表中有些對象是全小寫的,有些是以大寫字母開頭的。以大寫字母開頭的對象表示,引用該對象不使用下表列出的名字,而直接用對象的“名字”(Id或Name,下面有講解),或用它所屬的對象數(shù)組指定。這里我們不準(zhǔn)備講解對象的“事件”,雖然我們也會(huì)列出對象所能響應(yīng)的事件。我們將會(huì)在下一章“事件處理”中講解事件。navigatorscreenwindowhistorylocationframes[];Framedocumentanchors[];links[];Linkapplets[]embeds[]forms[];FormButtonCheckboxelements[];ElementHiddenPasswordRadioResetSelectoptions[];OptionSubmitTextTextareaimages[];Image瀏覽器對象
屏幕對象
窗口對象
歷史對象
地址對象
框架對象文檔對象
連接對象
Java小程序?qū)ο?/p>
插件對象
表單對象
按鈕對象
復(fù)選框?qū)ο?/p>
表單元素對象
隱藏對象
密碼輸入?yún)^(qū)對象
單選域?qū)ο?/p>
重置按鈕對象
選擇區(qū)(下拉菜單、列表)對象
選擇項(xiàng)對象
提交按鈕對象
文本框?qū)ο?/p>
多行文本輸入?yún)^(qū)對象
圖片對象HYPERLINKnavigator瀏覽器對象反映了當(dāng)前使用的瀏覽器的資料。屬性appCodeName返回瀏覽器的“碼名”(?),流行的IE和NN都返回'Mozilla'。
appName返回瀏覽器名。IE返回'MicrosoftInternetExplorer',NN返回'Netscape'。
appVersion返回瀏覽器版本,包括了大版本號(hào)、小版本號(hào)、語言、操作平臺(tái)等信息。
platform返回瀏覽器的操作平臺(tái),對于Windows9x上的瀏覽器,返回'Win32'(大小寫可能有差異)。
userAgent返回以上全部信息。例如,IE5.01返回'Mozilla/4.0(compatible;MSIE5.01;Windows98)'。
javaEnabled()返回一個(gè)布爾值,代表當(dāng)前瀏覽器允許不允許Java。HYPERLINKscreen屏幕對象反映了當(dāng)前用戶的屏幕設(shè)置。屬性width返回屏幕的寬度(像素?cái)?shù))。
height返回屏幕的高度。
availWidth返回屏幕的可用寬度(除去了一些不自動(dòng)隱藏的類似任務(wù)欄的東西所占用的寬度)。
availHeight返回屏幕的可用高度。
colorDepth返回當(dāng)前顏色設(shè)置所用的位數(shù)-1:黑白;8:256色;16:增強(qiáng)色;24/32:真彩色HYPERLINKwindow窗口對象最大的對象,它描述的是一個(gè)瀏覽器窗口。一般要引用它的屬性和方法時(shí),不需要用“window.xxx”這種形式,而直接使用“xxx”。一個(gè)框架頁面也是一個(gè)窗口。屬性name窗口的名稱,由打開它的連接(<atarget="...">)或框架頁(<framename="...">)或某一個(gè)窗口調(diào)用的open()方法(見下)決定。一般我們不會(huì)用這個(gè)屬性。
status指窗口下方的“狀態(tài)欄”所顯示的內(nèi)容。通過對status賦值,可以改變狀態(tài)欄的顯示。
opener用法:window.opener;返回打開本窗口的窗口對象。注意:返回的是一個(gè)窗口對象。如果窗口不是由其他窗口打開的,在Netscape中這個(gè)屬性返回null;在IE中返回“未定義”(undefined)。undefined在一定程度上等于null。注意:undefined不是JavaScript常數(shù),如果你企圖使用“undefined”,那就真的返回“未定義”了。
self指窗口本身,它返回的對象跟window對象是一模一樣的。最常用的是“self.close()”,放在<a>標(biāo)記中:“<ahref="javascript:self.close()">關(guān)閉窗口</a>”。
parent返回窗口所屬的框架頁對象。
top返回占據(jù)整個(gè)瀏覽器窗口的最頂端的框架頁對象。
history歷史對象,見下。
location地址對象,見下。
document文檔對象,見下。方法open()打開一個(gè)窗口。用法:open(<URL字符串>,<窗口名稱字符串>,<參數(shù)字符串>);
<URL字符串>:描述所打開的窗口打開哪一個(gè)網(wǎng)頁。如果留空(''),則不打開任意網(wǎng)頁。
<窗口名稱字符串>:描述被打開的窗口的名稱(),可以使用'_top'、'_blank'等內(nèi)建名稱。這里的名稱跟“<ahref="..."target="...">”里的“target”屬性是一樣的。
<參數(shù)字符串>:描述被打開的窗口的樣貌。如果只需要打開一個(gè)普通窗口,該字符串留空(''),如果要指定樣貌,就在字符串里寫上一到多個(gè)參數(shù),參數(shù)之間用逗號(hào)隔開。例:打開一個(gè)400x100的干凈的窗口:
open('','_blank','width=400,height=100,menubar=no,toolbar=no,
location=no,directories=no,status=no,scrollbars=yes,resizable=yes')參數(shù)top=#窗口頂部離開屏幕頂部的像素?cái)?shù)left=#窗口左端離開屏幕左端的像素?cái)?shù)width=#窗口的寬度height=#窗口的高度menubar=...窗口有沒有菜單,取值yes或notoolbar=...窗口有沒有工具條,取值yes或nolocation=...窗口有沒有地址欄,取值yes或nodirectories=...窗口有沒有連接區(qū),取值yes或noscrollbars=...窗口有沒有滾動(dòng)條,取值yes或nostatus=...窗口有沒有狀態(tài)欄,取值yes或noresizable=...窗口給不給調(diào)整大小,取值yes或noopen()方法有返回值,返回的就是它打開的窗口對象。所以,varnewWindow=open('','_blank');這樣把一個(gè)新窗口賦值到“newWindow”變量中,以后通過“newWindow”變量就可以控制窗口了。close()關(guān)閉一個(gè)已打開的窗口。
用法:window.close()或self.close():關(guān)閉本窗口;
<窗口對象>.close():關(guān)閉指定的窗口。
如果該窗口有狀態(tài)欄,調(diào)用該方法后瀏覽器會(huì)警告:“網(wǎng)頁正在試圖關(guān)閉窗口,是否關(guān)閉?”然后等待用戶選擇是否;如果沒有狀態(tài)欄,調(diào)用該方法將直接關(guān)閉窗口。
blur()使焦點(diǎn)從窗口移走,窗口變?yōu)椤胺腔顒?dòng)窗口”。
focus()是窗口獲得焦點(diǎn),變?yōu)椤盎顒?dòng)窗口”。不過在Windows98,該方法只能使窗口的標(biāo)題欄和任務(wù)欄上的相應(yīng)按鈕閃爍,提示用戶該窗口正在試圖獲得焦點(diǎn)。
scrollTo()用法:[<窗口對象>.]scrollTo(x,y);使窗口滾動(dòng),使文檔從左上角數(shù)起的(x,y)點(diǎn)滾動(dòng)到窗口的左上角。
scrollBy()用法:[<窗口對象>.]scrollBy(deltaX,deltaY);使窗口向右滾動(dòng)deltaX像素,向下滾動(dòng)deltaY像素。如果取負(fù)值,則向相反的方向滾動(dòng)。
resizeTo()用法:[<窗口對象>.]resizeTo(width,height);使窗口調(diào)整大小到寬width像素,高h(yuǎn)eight像素。
resizeBy()用法:[<窗口對象>.]resizeBy(deltaWidth,deltaHeight);使窗口調(diào)整大小,寬增大deltaWidth像素,高增大deltaHeight像素。如果取負(fù)值,則減少。
alert()用法:alert(<字符串>);彈出一個(gè)只包含“確定”按鈕的對話框,顯示<字符串>的內(nèi)容,整個(gè)文檔的讀取、Script的運(yùn)行都會(huì)暫停,直到用戶按下“確定”。
confirm()用法:confirm(<字符串>);彈出一個(gè)包含“確定”和“取消”按鈕的對話框,顯示<字符串>的內(nèi)容,要求用戶做出選擇,整個(gè)文檔的讀取、Script的運(yùn)行都會(huì)暫停。如果用戶按下“確定”,則返回true值,如果按下“取消”,則返回false值。
prompt()用法:prompt(<字符串>[,<初始值>]);彈出一個(gè)包含“確認(rèn)”“取消”和一個(gè)文本框的對話框,顯示<字符串>的內(nèi)容,要求用戶在文本框輸入一些數(shù)據(jù),整個(gè)文檔的讀取、Script的運(yùn)行都會(huì)暫停。如果用戶按下“確認(rèn)”,則返回文本框里已有的內(nèi)容,如果用戶按下“取消”,則返回null值。如果指定<初始值>,則文本框里會(huì)有默認(rèn)值。事件onload;onunload;onresize;onblur;onfocus;onerrorHYPERLINKhistory歷史對象歷史對象指瀏覽器的瀏覽歷史。鑒于安全性的需要,該對象收到很多限制,現(xiàn)在只剩下下列屬性和方法。屬性length歷史的項(xiàng)數(shù)。JavaScript所能管到的歷史被限制在用瀏覽器的“前進(jìn)”“后退”鍵可以去到的范圍。本屬性返回的是“前進(jìn)”和“后退”兩個(gè)按鍵之下包含的地址數(shù)的和。方法back()后退,跟按下“后退”鍵是等效的。
forward()前進(jìn),跟按下“前進(jìn)”鍵是等效的。
go()用法:history.go(x);在歷史的范圍內(nèi)去到指定的一個(gè)地址。如果x<0,則后退x個(gè)地址,如果x>0,則前進(jìn)x個(gè)地址,如果x==0,則刷新現(xiàn)在打開的網(wǎng)頁。history.go(0)跟location.reload()是等效的。HYPERLINKlocation地址對象它描述的是某一個(gè)窗口對象所打開的地址。要表示當(dāng)前窗口的地址,只需要使用“l(fā)ocation”就行了;若要表示某一個(gè)窗口的地址,就使用“<窗口對象>.location”。注意屬于不同協(xié)議或不同主機(jī)的兩個(gè)地址之間不能互相引用對方的location對象,這是出于安全性的需要。例如,當(dāng)前窗口打開的是“”下面的某一頁,另外一個(gè)窗口(對象名為:bWindow)打開的是“”的網(wǎng)頁。如果在當(dāng)前窗口使用“bWindow.location”,就會(huì)出錯(cuò):“沒有權(quán)限”。這個(gè)錯(cuò)誤是不能用錯(cuò)誤處理程序(EventHandler,參閱onerror事件)來接收處理的。屬性protocol返回地址的協(xié)議,取值為'http:','https:','file:'等等。
hostname返回地址的主機(jī)名,例如,一個(gè)“”的地址,location.hostname==''。
port返回地址的端口號(hào),一般http的端口號(hào)是'80'。
host返回主機(jī)名和端口號(hào),如:''。
pathname返回路徑名,如“”,location.pathname=='b/c.html'。
hash返回“#”以與以后的內(nèi)容,如“”,location.hash=='#chapter4';如果地址里沒有“#”,則返回空字符串。
search返回“?”以與以后的內(nèi)容,如“”,location.search=='?selection=3&jumpto=4';如果地址里沒有“?”,則返回空字符串。
href返回以上全部內(nèi)容,也就是說,返回整個(gè)地址。在瀏覽器的地址欄上怎么顯示它就怎么返回。如果想一個(gè)窗口對象打開某地址,可以使用“l(fā)ocation.href='...'”,也可以直接用“l(fā)ocation='...'”來達(dá)到此目的。方法reload()相當(dāng)于按瀏覽器上的“刷新”(IE)或“Reload”(Netscape)鍵。
replace()打開一個(gè)URL,并取代歷史對象中當(dāng)前位置的地址。用這個(gè)方法打開一個(gè)URL后,按下瀏覽器的“后退”鍵將不能返回到剛才的頁面。HYPERLINKframes[];Frame框架對象請參閱“使用框架和Cookies”一章。HYPERLINKdocument文檔對象描述當(dāng)前窗口或指定窗口對象的文檔。它包含了文檔從<head>到</body>的內(nèi)容。
用法:document(當(dāng)前窗口)
或<窗口對象>.document(指定窗口)屬性cookie關(guān)于cookie請參看“使用框架和Cookies”一章。
lastModified當(dāng)前文檔的最后修改日期,是一個(gè)Date對象。
referrer如果當(dāng)前文檔是通過點(diǎn)擊連接打開的,則referrer返回原來的URL。
title指<head>標(biāo)記里用<title>...</title>定義的文字。在Netscape里本屬性不接受賦值。
fgColor指<body>標(biāo)記的text屬性所表示的文本顏色。
bgColor指<body>標(biāo)記的bgcolor屬性所表示的背景顏色。
linkColor指<body>標(biāo)記的link屬性所表示的連接顏色。
alinkColor指<body>標(biāo)記的alink屬性所表示的活動(dòng)連接顏色。
vlinkColor指<body>標(biāo)記的vlink屬性所表示的已訪問連接顏色。方法open()打開文檔以便JavaScript能向文檔的當(dāng)前位置(指插入JavaScript的位置)寫入數(shù)據(jù)。通常不需要用這個(gè)方法,在需要的時(shí)候JavaScript自動(dòng)調(diào)用。
write();writeln()向文檔寫入數(shù)據(jù),所寫入的會(huì)當(dāng)成標(biāo)準(zhǔn)文檔HTML來處理。writeln()與write()的不同點(diǎn)在于,writeln()在寫入數(shù)據(jù)以后會(huì)加一個(gè)換行。這個(gè)換行只是在HTML中換行,具體情況能不能夠是顯示出來的文字換行,要看插入JavaScript的位置而定。如在<pre>標(biāo)記中插入,這個(gè)換行也會(huì)體現(xiàn)在文檔中。
clear()清空當(dāng)前文檔。
close()關(guān)閉文檔,停止寫入數(shù)據(jù)。如果用了write[ln]()或clear()方法,就一定要用close()方法來保證所做的更改能夠顯示出來。如果文檔還沒有完全讀取,也就是說,JavaScript是插在文檔中的,那就不必使用該方法?,F(xiàn)在我們已經(jīng)擁有足夠的知識(shí)來做以下這個(gè)很多網(wǎng)站都有的彈出式更新通知了。<scriptlanguage="JavaScript">
<!--
varwhatsNew=open('','_blank','top=50,left=50,width=200,height=300,'+
'menubar=no,toolbar=no,directories=no,location=no,'+
'status=no,resizable=no,scrollbars=yes');
whatsNew.document.write('<center><b>更新通知</b></center>');
whatsNew.document.write('<p>最后更新日期:00.08.01');
whatsNew.document.write('<p>00.08.01:增加了“我的最愛”欄目。');
whatsNew.document.write('<palign="right">'+
'<ahref="javascript:self.close()">關(guān)閉窗口</a>');
whatsNew.document.close();
-->
</script>當(dāng)然也可以先寫好一個(gè)HTML文件,在open()方法中直接load這個(gè)文件。HYPERLINKanchors[];links[];Link連接對象用法:document.anchors[[x]];document.links[[x]];<anchorId>;<linkId>
document.anchors是一個(gè)數(shù)組,包含了文檔中所有錨標(biāo)記(包含name屬性的<a>標(biāo)記),按照在文檔中的次序,從0開始給每個(gè)錨標(biāo)記定義了一個(gè)下標(biāo)。
document.links也是一個(gè)數(shù)組,包含了文檔中所有連接標(biāo)記(包含href屬性的<a>標(biāo)記和<map>標(biāo)記段里的<area>標(biāo)記),按照在文檔中的次序,從0開始給每個(gè)連接標(biāo)記定義了一個(gè)下標(biāo)。
如果一個(gè)<a>標(biāo)記既有name屬性,又有href屬性,則它既是一個(gè)Anchor對象,又是一個(gè)Link對象。
在IE中,如果在<a>標(biāo)記中添加“id="..."”屬性,則這個(gè)<a>對象被賦予一個(gè)標(biāo)識(shí)(ID),調(diào)用這個(gè)對象的時(shí)候只需要使用“<id>”就行了。很多文檔部件都可以用這個(gè)方法來賦予ID,但要注意不能有兩個(gè)ID相同。anchors和links作為數(shù)組,有數(shù)組的屬性和方法。單個(gè)Anchor對象沒有屬性;單個(gè)Link對象的屬性見下。屬性protocol;hostname;port;host;pathname;hash;search;href與location對象相同。
target返回/指定連接的目標(biāo)窗口(字符串),與<a>標(biāo)記里的target屬性是一樣的。事件onclick;onmouseover;onmouseout;onmousedown;onmouseupHYPERLINKapplets[]Java小程序?qū)ο笏且粋€(gè)數(shù)組,包含了文檔中所有的Applet對象(Java小程序)。作為一個(gè)數(shù)組,有數(shù)組的屬性和方法。關(guān)于單個(gè)Applet對象的屬性和方法,我引用一句話:“Applet對象繼承了Java小程序的所有公共屬性和方法?!?英文原句:TheAppletobjectinheritsallpublicpropertiesoftheJavaapplet./TheAppletobjectinheritsallpublicmethodssoftheJavaapplet.)因?yàn)楸救撕軈拹篔ava小程序,所以對它的什么“公共”“私有”的問題不感興趣,也就沒有探討了。HYPERLINKembeds[]插件對象它是一個(gè)數(shù)組,包含了文檔中所有的插件(<embed>標(biāo)記)。因?yàn)槊總€(gè)插件的不同,每個(gè)Embed對象也有不同的屬性和方法。HYPERLINKforms[];Form表單對象document.forms[]是一個(gè)數(shù)組,包含了文檔中所有的表單(<form>)。要引用單個(gè)表單,可以用document.forms[x],但是一般來說,人們都會(huì)這樣做:在<form>標(biāo)記中加上“name="..."”屬性,那么直接用“document.<表單名>”就可以引用了。Form對象的屬性name返回表單的名稱,也就是<formname="...">屬性。
action返回/設(shè)定表單的提交地址,也就是<formaction="...">屬性。
method返回/設(shè)定表單的提交方法,也就是<formmethod="...">屬性。
target返回/設(shè)定表單提交后返回的窗口,也就是<formtarget="...">屬性。
encoding返回/設(shè)定表單提交內(nèi)容的編碼方式,也就是<formenctype="...">屬性。
length返回該表單所含元素的數(shù)目。方法reset()重置表單。這與按下“重置”按鈕是一樣的。
submit()提交表單。這與按下“提交”按鈕是一樣的。事件onreset;onsubmit以下從“Button”到“Textarea”都是表單的元素對象。HYPERLINKButton按鈕對象由“<inputtype="button">”指定。引用一個(gè)Button對象,可以使用“<文檔對象>.<表單對象>.<按鈕名稱>”。<按鈕名稱>指在<input>標(biāo)記中的“name="..."”屬性的值。引用任意表單元素都可以用這種方法。屬性name返回/設(shè)定用<inputname="...">指定的元素名稱。
value返回/設(shè)定用<inputvalue="...">指定的元素的值。
form返回包含本元素的表單對象。方法blur()從對象中移走焦點(diǎn)。
focus()讓對象獲得焦點(diǎn)。
click()模擬鼠標(biāo)點(diǎn)擊該對象。事件onclick;onmousedown;onmouseupHYPERLINKCheckbox復(fù)選框?qū)ο笥伞?lt;inputtype="checkbox">”指定。屬性name返回/設(shè)定用<inputname="...">指定的元素名稱。
value返回/設(shè)定用<inputvalue="...">指定的元素的值。
form返回包含本元素的表單對象。
checked返回/設(shè)定該復(fù)選框?qū)ο笫欠癖贿x中。這是一個(gè)布爾值。
defaultChecked返回/設(shè)定該復(fù)選框?qū)ο竽J(rèn)是否被選中。這是一個(gè)布爾值。方法blur()從對象中移走焦點(diǎn)。
focus()讓對象獲得焦點(diǎn)。
click()模擬鼠標(biāo)點(diǎn)擊該對象。事件onclickHYPERLINKelements[];Element表單元素對象<表單對象>.elements是一個(gè)數(shù)組,包含了該表單所有的對象。一般我們不用該數(shù)組,而直接引用各個(gè)具體的對象。HYPERLINKHidden隱藏對象由“<inputtype="hidden">”指定。屬性name返回/設(shè)定用<inputname="...">指定的元素名稱。
value返回/設(shè)定用<inputvalue="...">指定的元素的值。
form返回包含本元素的表單對象。HYPERLINKPassword密碼輸入?yún)^(qū)對象由“<inputtype="password">”指定。屬性name返回/設(shè)定用<inputname="...">指定的元素名稱。
value返回/設(shè)定密碼輸入?yún)^(qū)當(dāng)前的值。
defaultValue返回用<inputvalue="...">指定的默認(rèn)值。
form返回包含本元素的表單對象。方法blur()從對象中移走焦點(diǎn)。
focus()讓對象獲得焦點(diǎn)。
select()選中密碼輸入?yún)^(qū)里全部文本。事件onchangeHYPERLINKRadio單選域?qū)ο笥伞?lt;inputtype="radio">”指定。一組Radio對象有共同的名稱(name屬性),這樣的話,document.formName.radioName就成了一個(gè)數(shù)組。要訪問單個(gè)Radio對象就要用:document.formName.radioName[x]。單個(gè)Radio對象的屬性name返回/設(shè)定用<inputname="...">指定的元素名稱。
value返回/設(shè)定用<inputvalue="...">指定的元素的值。
form返回包含本元素的表單對象。
checked返回/設(shè)定該單選域?qū)ο笫欠癖贿x中。這是一個(gè)布爾值。
defaultChecked返回/設(shè)定該對象默認(rèn)是否被選中。這是一個(gè)布爾值。方法blur()從對象中移走焦點(diǎn)。
focus()讓對象獲得焦點(diǎn)。
click()模擬鼠標(biāo)點(diǎn)擊該對象。事件onclickHYPERLINKReset重置按鈕對象由“<inputtype="reset">”指定。因?yàn)镽eset也是按鈕,所以也有Button對象的屬性和方法。至于“onclick”事件,一般用Form對象的onreset代替。HYPERLINKSelect選擇區(qū)(下拉菜單、列表)對象由“<select>”指定。屬性name返回/設(shè)定用<inputname="...">指定的元素名稱。
length返回Select對象下選項(xiàng)的數(shù)目。
selectedIndex返回被選中的選項(xiàng)的下標(biāo)。這個(gè)下標(biāo)就是在options[]數(shù)組中該選項(xiàng)的位置。如果Select對象允許多項(xiàng)選擇,則返回第一個(gè)被選中的選項(xiàng)的下標(biāo)。
form返回包含本元素的表單對象。方法blur()從對象中移走焦點(diǎn)。
focus()讓對象獲得焦點(diǎn)。事件onchangeHYPERLINKoptions[];Option選擇項(xiàng)對象options[]是一個(gè)數(shù)組,包含了在同一個(gè)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 年度員工代表發(fā)言稿15篇
- 年終大會(huì)發(fā)言稿15篇
- 年會(huì)精彩發(fā)言稿(15篇)
- 黨的理論知識(shí)宣講
- 教師清廉建設(shè)培訓(xùn)
- 教體局校車安全管理培訓(xùn)
- 闌尾炎術(shù)后應(yīng)用抗生素聯(lián)合黃藤通腑湯干預(yù)的效果
- 大學(xué)生安全教育概述
- 抖音賣貨流程
- 初級會(huì)計(jì)實(shí)務(wù)-《初級會(huì)計(jì)實(shí)務(wù)》預(yù)測試卷364
- 湖北省十堰市城區(qū)2024-2025學(xué)年九年級上學(xué)期期末質(zhì)量檢測綜合物理試題(含答案)
- 導(dǎo)播理論知識(shí)培訓(xùn)班課件
- 電廠檢修安全培訓(xùn)課件
- 2024企業(yè)答謝晚宴會(huì)務(wù)合同3篇
- 高中生物選擇性必修1試題
- 電氣工程及其自動(dòng)化專業(yè)《畢業(yè)設(shè)計(jì)(論文)及答辯》教學(xué)大綱
- 《客艙安全管理與應(yīng)急處置》課件-第14講 應(yīng)急撤離
- 危險(xiǎn)化學(xué)品押運(yùn)員培訓(xùn)
- 中華人民共和國文物保護(hù)法
- 2025屆高考作文押題預(yù)測5篇
- 節(jié)前物業(yè)安全培訓(xùn)
評論
0/150
提交評論