二、窗口方法
窗口是瀏覽器與用戶交互的界面。利用JavaScript中的窗口方法和屬性,可以創(chuàng)建可控制窗口。在這一部分里,將介紹一些窗口方法和屬性。
1.預(yù)定義窗口(對(duì)話框)
JavaScript提供三個(gè)方法來產(chǎn)生"簡(jiǎn)單"的窗口(或?qū)υ捒?:alert (),confirm()和promp t()。盡管我們無法控制這些對(duì)話框的位置,按鈕或大小,但它們提供了初步的機(jī)制來提示用戶或接收輸入。以下討論各方法。
alert() alert()方法建立了一個(gè)獨(dú)立的消息窗口,語法形式如下: alert("message") 其中"message"是要在提示窗口中顯示的文本串。
confirm() confirm()方法用于進(jìn)行一個(gè)事件之前請(qǐng)求獲得用戶的認(rèn)可。它給用戶以停止某個(gè)事件出現(xiàn)的機(jī)會(huì)。該方法的語法形式如下: confirm("message") 其中message是一個(gè)文本串。
prompt() prompt()方法接收用戶的反饋,用戶可以從鍵盤鍵入信息,或者如果他們接收一個(gè)默認(rèn)值的話,可以用鼠標(biāo)選取。該方法的語法形式如下: prompt("message") 如果想要指定一個(gè)默認(rèn)值,可以用: prompt("message",imputDefault)其中"message"是文本或數(shù)字。用戶可以鍵入任何信息。因此,一個(gè)變量雖然希望輸入一個(gè)數(shù)字進(jìn)行計(jì)算,也可能輸入給它的是文本。如果單擊了Cancel鍵和關(guān)閉鍵,pr ompt()返回空值。
2.定制窗口
上面的三種窗口雖然很簡(jiǎn)單,但它們有一個(gè)共同的缺點(diǎn)是不靈活, 即無法改變它們的大小和風(fēng)格。下面,我們來討論在JavaScript中如何定制窗口的問題。首先,我們應(yīng)知道如何創(chuàng)建一個(gè)窗口。
open() open()方法將創(chuàng)建一個(gè)新窗口。使用該方法創(chuàng)建窗口與選擇File 菜單項(xiàng)的New Web Bro wser的效果是相似的。該方法的語法形式如下 : windowVar=window.open("URL","windowName") 或者也可以定義一個(gè)窗口的屬性: windowVar=window.open("URL","windowName","windowAttribut er")其中WindowName是要?jiǎng)?chuàng)建的窗口的名字。URL是一個(gè)文本串,指定當(dāng)前新窗口創(chuàng)建時(shí)要調(diào)用的URL。如果沒有指定URL(使用空字符串"") ,那么窗口是空的。 windowName代表該窗口的名字。 windowFeatures是可以賦給窗口的可選屬性,比如一個(gè)工具條,位置,目錄,狀態(tài)條,菜單條,滾動(dòng)條,大小可變的能力,寬度和高度(見附表)。設(shè)定它們時(shí)以逗號(hào)為分隔符,并在最外加上雙引號(hào)。
窗口屬性 這些屬性的使用形式如下: feeture=value 其中feature是所要選擇的屬性,value(除了width和height兩種屬性外)或是yes(或1)以激活該屬性,或是no(或0)以消除它。 width和height的語法形式如下: feature=pixels 其中pixels是任何正整數(shù)(或正整數(shù)變量),確定新窗口的大小(以像素為單位)。
close() 使用close()方法,它的語法形式如下: windowReference.close() 可以使用以下任何一個(gè)函數(shù)關(guān)閉當(dāng)前窗口:window.close()、self.close()、close()。我們可以通過引用一個(gè)窗口的windowVar(該值是調(diào)用open()方法時(shí)產(chǎn)生的),來關(guān)閉一個(gè)獨(dú)立的窗口。比如:某個(gè)窗口創(chuàng)建時(shí)所用的命令是: WindowB=open(",","anotherwindow","windth=80,height=40); 我們可以在任何其它窗口中關(guān)閉它,使用命令: windowB.close() 關(guān)閉最頂層的窗口可以利用以下方法 top.close() 當(dāng)然,如果要關(guān)閉當(dāng)前窗口,我們可以使用任何自行關(guān)閉命令。
javascript為我們提供了一些非常有用的常用內(nèi)部對(duì)象和方法。用戶不需要用腳本來實(shí)現(xiàn)這些功能。這正是基于對(duì)象編程的真正目的。
在javascript提供了string(字符串)、math(數(shù)值計(jì)算)和Date(日期)三種對(duì)象和其它一些相關(guān)的方法。從而為編程人員快速開發(fā)強(qiáng)大的腳本程序提供了非常有利的條件。
1、常用內(nèi)部對(duì)象
在javascript中對(duì)于對(duì)象屬性與方法的引用,有兩種情況:其一是說該對(duì)象是靜態(tài)對(duì)象,即在引用該對(duì)象的屬性或方法時(shí)不需要為它創(chuàng)建實(shí)例;而另一種對(duì)象則在引用它的對(duì)象或方法是必須為它創(chuàng)建一個(gè)實(shí)例,即該對(duì)象是動(dòng)態(tài)對(duì)象。
對(duì)javascript內(nèi)部對(duì)象的引用,以是緊緊圍繞著它的屬性與方法進(jìn)行的。因而明確對(duì)象的靜動(dòng)性對(duì)于掌握和理解javascript內(nèi)部對(duì)象是具有非常重要的意義。
1)、串對(duì)象
o string對(duì)象:內(nèi)部靜態(tài)性。
o 訪問properties和methods時(shí),可使用(.)運(yùn)算符實(shí)現(xiàn)。
o 基本使用格式:objectName.prop/methods
(1)串對(duì)象的屬性
該對(duì)象只有一個(gè)屬性,即length。它表明了字符串中的字符個(gè)數(shù),包括所有符號(hào)。
例:
mytest="This is a javascript"
mystringlength=mytest.length
最后mystringlength返回mytest字串的長(zhǎng)度為20。
(2)串對(duì)象的方法
string對(duì)象的方法共有19個(gè)。主要用于有關(guān)字符串在Web頁面中的顯示、字體大小、字體顏色、字符的搜索以及字符的大小寫轉(zhuǎn)換。
其主要方法如下:
o 錨點(diǎn)anchor():該方法創(chuàng)建如用Html文檔中一樣的anchor標(biāo)記。使用anchor如用Html中(A Name="")一樣。通過下列格式訪問:string.anchor(anchorName)。
o 有關(guān)字符顯示的控制方法
big字體顯示, Italics()斜體字顯示,bold()粗體字顯示,blink()字符閃爍顯示,small()字符用小體字顯示,fixed()固定高亮字顯示、fontsize(size)控制字體大小等。
o 字體顏色方法;fontcolor(color)
o 字符串大小寫轉(zhuǎn)換
toLowerCase()-小寫轉(zhuǎn)換,toUpperCase()大寫轉(zhuǎn)換。下列把一個(gè)給定的串分別轉(zhuǎn)換成大寫和小寫格式:
string=stringValue.toUpperCase和string=stringValue.toLowerCase。
o 字符搜索:indexOf[charactor,fromIndex]
從指定formIndtx位置開始搜索charactor第一次出現(xiàn)的位置。
返回字串的一部分字串:substring(start,end)
從start開始到end的字符全部返回。
2)、算術(shù)函數(shù)的math對(duì)象
功能:提供除加、減、乘、除以外的一引些自述運(yùn)算。如對(duì)數(shù),平方根等 。
靜動(dòng)性:靜態(tài)對(duì)象
(1)主要屬性
math中提供了6個(gè)屬性,它們是數(shù)學(xué)中經(jīng)常用到的常數(shù)E、以10為底的自然對(duì)數(shù)LN10、以2為底的自然對(duì)數(shù)LN2、3.14159的PI、1/2的平方根SQRT1-2,2的平方根為SQRT2。
(2)主要方法
絕對(duì)值:abs()
正弦余弦值:sin(),cos()
反正弦反余弦 :asin(), acos()
正切反正切:tan(),atan()
四舍五入:round()
平方根:sqrt()
基于幾方次的值:Pow(base,exponent)
...
3)、日期及時(shí)間對(duì)象
功能:提供一個(gè)有關(guān)日期和時(shí)間的對(duì)象。
靜動(dòng)性:動(dòng)態(tài)性,即必須使用New運(yùn)算符創(chuàng)建一個(gè)實(shí)例。例:
MyDate=New Date()
Date對(duì)象沒有提供直接訪問的屬性。只具有獲取和設(shè)置日期和時(shí)間的方法。
日期起始值:1770年1月1日00:00:00。
1. 獲取日期的時(shí)間方法
getYear(): 返回年數(shù)
getMonth():返回當(dāng)月號(hào)數(shù)
getDate(): 返回當(dāng)日號(hào)數(shù)
getDay():返回星期幾
getHours():返回小時(shí)數(shù)
getMintes(:返回分鐘數(shù)
getSeconds():返回秒數(shù)
getTime() : 返回毫秒數(shù)
(2)設(shè)置日期和時(shí)間:
setYear();設(shè)置年
setDate():設(shè)置當(dāng)月號(hào)數(shù)
setMonth():設(shè)置當(dāng)月份數(shù)
setHours():設(shè)置小時(shí)數(shù)
setMintes():設(shè)置分鐘數(shù)
setSeconds():設(shè)置秒數(shù)
setTime ():設(shè)置毫秒數(shù)
...
2、javascript中的系統(tǒng)函數(shù)
javascript中的系統(tǒng)函數(shù)又稱內(nèi)部方法。它提供了與任何對(duì)象無關(guān)的系統(tǒng)函數(shù),使用這些函數(shù)不需創(chuàng)建任何實(shí)例,可直接用。
1.返回字符串表達(dá)式中的值:
方法名:eval(字串表達(dá)式),例:
test=eval("8+9+5/2");
2. 返回字符串ASCI碼:
方法名:unEscape (string)
3.返回字符的編碼:
方法名:escape(character)
4.返回實(shí)數(shù):
parseFloat(floustring);
5.返回不同進(jìn)制的數(shù):
parseInt(numbestring ,rad.X)
其中radix是數(shù)的進(jìn)制,numbs字符串?dāng)?shù)