一:彈出框

JavaScript中有三種彈出框:警告(alert)、確認(rèn)(confirm)以及提問(wèn)(prompt)。 

1.警告(alert) 

在訪問(wèn)網(wǎng)站的時(shí)候,你遇到的一聲,一個(gè)小窗口出現(xiàn)在你面前,上面寫(xiě)著一段警示性的文字,或是其它的提示信息。如果你不點(diǎn)擊確定,你就不能對(duì)網(wǎng)頁(yè)做任何的操作。沒(méi)錯(cuò),這個(gè)的小窗口就是alert干的。 下面的代碼是一段使用alert的實(shí)例。 

<script type="text/JavaScript"> 

alert("我是菜鳥(niǎo)我怕誰(shuí)"); 

</script> 

2.確認(rèn)(confirm) 

確認(rèn)框用于讓用戶(hù)選擇某一個(gè)問(wèn)題是否符合實(shí)際情況。來(lái)看下面的代碼:我們用confirm("你是菜鳥(niǎo)嗎?")向訪客提問(wèn),變量r則保存了訪客的回應(yīng),它只可能有兩種取值:true或false。沒(méi)錯(cuò),它是一個(gè)布爾值。confirm后面的語(yǔ)句則是我們對(duì)訪客回答做出的不同回應(yīng)。 

var r=confirm("你是菜鳥(niǎo)嗎"); 

if (r==true) 

{ document.write("彼此彼此"); } 

else 

{ document.write("佩服佩服"); } </script> 


3.提問(wèn)(prompt) 

prompt和confirm類(lèi)似,不過(guò)它允許訪客隨意輸入回答。我們根據(jù)分?jǐn)?shù)來(lái)做出不同的評(píng)價(jià),現(xiàn)在我么就可以用prompt來(lái)向訪客提問(wèn),用score存儲(chǔ)用戶(hù)輸入的回答,其余的事情就都由后面的switch來(lái)完成了。 

function judge() { 

var score;//分?jǐn)?shù) 

var degree;//分?jǐn)?shù)等級(jí) 

score = prompt("你的分?jǐn)?shù)是多少?") 

if (score > 100){ 

degree = '耍我?100分滿(mǎn)!'; } 

else{ 

switch (parseInt(score / 10)) { 

case 0: 

case 1: 

case 2: 

case 3: 

case 4: 

case 5: 

degree = "恭喜你,又掛了!"; 

break; 

case 6: 

degree = "勉強(qiáng)及格"; 

break; 

case 7: 

degree = "湊合,湊合" 

break; 

case 8: 

degree = "8錯(cuò),8錯(cuò)"; 

break; 

case 9: 

case 10: 

degree = "高手高手,佩服佩服"; 

}//end of switch 

}//end of else 

alert(degree); 

} 


二:JavaScript事件 

我們之前提到過(guò)函數(shù)的調(diào)用。函數(shù)定義之后,默認(rèn)是不會(huì)執(zhí)行的,這時(shí)候就需要一些事件來(lái)觸發(fā)這個(gè)函數(shù)的執(zhí)行。 JavaScript很多有很多事件,例如鼠標(biāo)的點(diǎn)擊、移動(dòng),網(wǎng)頁(yè)的載入和關(guān)閉。我們一起來(lái)看幾個(gè)事件的實(shí)例。 

1.點(diǎn)擊事件 

使用點(diǎn)擊事件調(diào)用,需要給元素設(shè)置onclick屬性。示例代碼如下: 

<button value="點(diǎn)擊提交" onclick="displaymessage()">onclick調(diào)用函數(shù)</button> 

由于設(shè)置了onclick="displaymessage()",因此點(diǎn)擊按鈕則會(huì)調(diào)用函數(shù)。 

2.鼠標(biāo)經(jīng)過(guò)、移出事件 

使用鼠標(biāo)經(jīng)過(guò)事件調(diào)用函數(shù)的代碼如下: 

<button value="點(diǎn)擊提交" onmouseover="displaymessage()">鼠標(biāo)滑過(guò)調(diào)用函數(shù)</button> 

當(dāng)鼠標(biāo)經(jīng)過(guò)按鈕時(shí),觸發(fā)onmouseover事件,將會(huì)調(diào)用函數(shù)displaymessage()。 

使用鼠標(biāo)移出事件調(diào)用函數(shù)的代碼如下: 

<button value="點(diǎn)擊提交" onmouseout="displaymessage()">鼠標(biāo)移出調(diào)用函數(shù)</button> 

把鼠標(biāo)移動(dòng)到這個(gè)按鈕里面,當(dāng)再移動(dòng)出去時(shí),觸發(fā)onmouseout 事件,將會(huì)調(diào)用函數(shù)displaymessage()。 

11.3更多事件 

JavaScript中還有很多事件,完整的列表可以看看http://www.w3pop.com/learn/view/p/3/o/0/doc/jsref_events/。 

下面的列表列舉了可以插入HTML標(biāo)簽中來(lái)定義事件動(dòng)作的屬性,具體的用法請(qǐng)參考上面的網(wǎng)站

屬性 

事件發(fā)生時(shí)機(jī) 

onabort 

圖片下載被打斷時(shí) 

onblur 

元素失去焦點(diǎn)時(shí) 

onchange 

框內(nèi)容改變時(shí) 

onclick 

鼠標(biāo)點(diǎn)擊一個(gè)對(duì)象時(shí) 

ondblclick 

鼠標(biāo)雙擊一個(gè)對(duì)象時(shí) 

onerror 

當(dāng)加載文檔或圖片時(shí)發(fā)生錯(cuò)誤時(shí) 

onfocus 

當(dāng)元素獲取焦點(diǎn)時(shí) 

onkeydown 

按下鍵盤(pán)按鍵時(shí) 

onkeypress 

按下或按住鍵盤(pán)按鍵時(shí) 

onkeyup 

放開(kāi)鍵盤(pán)按鍵時(shí) 

onload 

頁(yè)面或圖片加載完成時(shí) 

onmousedown 

鼠標(biāo)被按下時(shí) 

onmousemove 

鼠標(biāo)被移動(dòng)時(shí) 

onmouseout 

鼠標(biāo)離開(kāi)元素時(shí) 

onmouseover 

鼠標(biāo)經(jīng)過(guò)元素時(shí) 

onmouseup 

釋放鼠標(biāo)按鍵時(shí) 

onreset 

重新點(diǎn)擊鼠標(biāo)按鍵時(shí) 

onresize 

當(dāng)窗口或框架被重新定義尺寸時(shí) 

onselect 

文本被選擇時(shí) 

onsubmit 

點(diǎn)擊提交按鈕時(shí) 

onunload 

用戶(hù)離開(kāi)頁(yè)面時(shí) 

三:JavaScript 對(duì)象化編程 

JavaScript 是使用對(duì)象化編程的,或者叫面向?qū)ο缶幊?/span>的。所謂對(duì)象化編程,意思是把 JavaScript 能涉及的范圍劃分成大大小小的對(duì)象,對(duì)象下面還繼續(xù)劃分對(duì)象直至非常詳細(xì)為止,所有的編程都以對(duì)象為出發(fā)點(diǎn),基于對(duì)象。小到一個(gè)變量,大到網(wǎng)頁(yè)文檔、窗口甚至屏幕,都是對(duì)象。JavaScript對(duì)象是可以是一段文字、一幅圖片、一個(gè)表單(Form)等等。每個(gè)對(duì)象有它自己的屬性、方法和事件。對(duì)象的屬性是反映該對(duì)象某些特定的性質(zhì)的,例如:字符串的長(zhǎng)度、圖像的長(zhǎng)寬、文字框(Textbox)里的文字等等;對(duì)象的方法能對(duì)該對(duì)象做一些事情,例如,表單的提交(Submit),窗口的滾動(dòng)(Scrolling)等等;而對(duì)象的事件就能響應(yīng)發(fā)生在對(duì)象上的事情,例如提交表單產(chǎn)生表單的提交事件,點(diǎn)擊連接產(chǎn)生的點(diǎn)擊事件。不是所有的對(duì)象都有以上三個(gè)性質(zhì),有些沒(méi)有事件,有些只有屬性。引用對(duì)象的任一性質(zhì)<對(duì)象名>.<性質(zhì)名>這種方法。 

JavaScript對(duì)象有:基本對(duì)象、全局對(duì)象、文檔對(duì)象。下面我們一一介紹。 

14.1基本對(duì)象 

1String 字符串對(duì)象 :前面博客中已經(jīng)提到過(guò)了,并且具體用法和方法和java中的基本相識(shí),在此不在寫(xiě)了

2Array 數(shù)組對(duì)象 

數(shù)組對(duì)象是一個(gè)對(duì)象的集合,里邊的對(duì)象可以是不同類(lèi)型的。數(shù)組的每一個(gè)成員對(duì)象都有一個(gè)下標(biāo),用來(lái)表示它在數(shù)組中的位置,是從零開(kāi)始的。 

屬性 

length 用法:<數(shù)組對(duì)象>.length;返回:數(shù)組的長(zhǎng)度,即數(shù)組里有多少個(gè)元素。它等于數(shù)組里最后一個(gè)元素的下標(biāo)加一。 

方法 

join() 用法:<數(shù)組對(duì)象>.join(<分隔符>);返回一個(gè)字符串,該字符串把數(shù)組中的各個(gè)元素串起來(lái),用<分隔符>置于元素與元素之間。這個(gè)方法不影響數(shù)組原本的內(nèi)容。 

reverse() 用法:<數(shù)組對(duì)象>.reverse();使數(shù)組中的元素順序反過(guò)來(lái)。如果對(duì)數(shù)組[1, 2, 3]使用這個(gè)方法,它將使數(shù)組變成:[3, 2, 1]。 

slice() 用法:<數(shù)組對(duì)象>.slice(<始>[, <終>]);返回一個(gè)數(shù)組,該數(shù)組是原數(shù)組的子集,始于<始>,終于<終>。如果不給出<終>,則子集一直取到原數(shù)組的結(jié)尾。 

sort() 用法:<數(shù)組對(duì)象>.sort([<方法函數(shù)>]);使數(shù)組中的元素按照一定的順序排列。如果不指定<方法函數(shù)>,則按字母順序排列。在這種情況下,80 是比 9 排得前的。如果指定<方法函數(shù)>,則按<方法函數(shù)>所指定的排序方法排序。<方法函數(shù)>比較難講述,這里只將一些有用的<方法函數(shù)>介紹給大家。 

按升序排列數(shù)字: 

function sortMethod(a, b) { 

return a - b; 

myArray.sort(sortMethod); 

按降序排列數(shù)字:把上面的a - b該成b - a。 

3Math 數(shù)學(xué)對(duì)象 

Math對(duì)象,提供對(duì)數(shù)據(jù)的數(shù)學(xué)計(jì)算。下面所提到的屬性和方法,不再詳細(xì)說(shuō)明用法,大家在使用的時(shí)候記住用Math.<名>這種格式。 

屬性 

E 返回常數(shù) e (2.718281828...)。 

LN2 返回 2 的自然對(duì)數(shù) (ln 2)。 

LN10 返回 10 的自然對(duì)數(shù) (ln 10)。 

LOG2E 返回以 2 為低的 e 的對(duì)數(shù) (log2e)。 

LOG10E 返回以 10 為低的 e 的對(duì)數(shù) (log10e)。 

PI 返回π(3.1415926535...)。 

SQRT1_2 返回 1/2 的平方根。 SQRT2 返回 2 的平方根。 

方法 

abs(x) 返回 x 的絕對(duì)值。 

acos(x) 返回 x 的反余弦值(余弦值等于 x 的角度),用弧度表示。 asin(x) 返回 x 的反正弦值。 

atan(x) 返回 x 的反正切值。 

atan2(x, y) 返回復(fù)平面內(nèi)點(diǎn)(x, y)對(duì)應(yīng)的復(fù)數(shù)的幅角,用弧度表示,其值在-π 到π之間。 

ceil(x) 返回大于等于 x 的最小整數(shù)。 

cos(x) 返回 x 的余弦。 

exp(x) 返回 e 的 x 次冪 (ex)。 

floor(x) 返回小于等于 x 的最大整數(shù)。 

log(x) 返回 x 的自然對(duì)數(shù) (ln x)。 

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 的正切。 

4Date 對(duì)象 

Date 日期對(duì)象。這個(gè)對(duì)象可以?xún)?chǔ)存任意一個(gè)日期,從 0001 年到 9999 年,并且可以精確到毫秒數(shù)(1/1000 秒)。 

定義一個(gè)日期對(duì)象: 

var today = new Date(); 

這個(gè)方法使 成為日期對(duì)象,并且已有初始值:當(dāng)前時(shí)間。如果要自定初始值,可以用下列方法: 

var d = new Date(99, 10, 1); //99 年 10 月 1 日 var d = new Date('Oct 1, 1999'); //99 年 10 月 1 日 

最好的方法就是用下面介紹的方法來(lái)嚴(yán)格的定義時(shí)間。 

方法 

以下有很多getXXX()、setXXX()這樣的方法,getXXX()是獲得某個(gè)數(shù)值,而setXXX()是設(shè)定某個(gè)數(shù)值。 

如無(wú)說(shuō)明,方法的使用格式為:<對(duì)象>.<方法>,下同。 

get/setFullYear() 返回/設(shè)置年份,用四位數(shù)表示。如果使用x.setFullYear(99),則年份被設(shè)定為 0099 年。 

get/setYear() 返回/設(shè)置年份,用兩位數(shù)表示。設(shè)定的時(shí)候?yàn)g覽器自動(dòng)加上19開(kāi)頭,故使用x.setYear(00)把年份設(shè)定為 1900 年。 

get/setMonth() 返回/設(shè)置月份, 表示1月。 

get/setDate() 返回/設(shè)置日期。 

get/setDay() 返回/設(shè)置星期,0 表示星期天。 

get/setHours() 返回/設(shè)置小時(shí)數(shù),24小時(shí)制。

get/setMinutes() 返回/設(shè)置分鐘數(shù)。

get/setSeconds() 返回/設(shè)置秒鐘數(shù)。 

get/setMilliseconds() 返回/設(shè)置毫秒數(shù)。 

get/setTime() 返回/設(shè)置時(shí)間,該時(shí)間就是日期對(duì)象的內(nèi)部處理方法:從 1970 年 1 月 1 日零時(shí)正開(kāi)始計(jì)算到日期對(duì)象所指的日期的毫秒數(shù)。如果要使某日期對(duì)象所指的時(shí)間推遲 1 小時(shí),就用:x.setTime(x.getTime() + 60 * 60 * 1000);(一小時(shí) 60 分,一分 60 秒,一秒 1000 毫秒)。 

getTimezoneOffset() 返回日期對(duì)象采用的時(shí)區(qū)與格林威治時(shí)間所差的分鐘數(shù)。在格林威治東方的市區(qū),該值為負(fù),例如:中國(guó)時(shí)區(qū)(GMT+0800)返回-480。 toString() 返回一個(gè)字符串,描述日期對(duì)象所指的日期。這個(gè)字符串的格式類(lèi)似于:FriJul 21 15:43:46 UTC+0800 2000。 

toLocaleString() 返回一個(gè)字符串,描述日期對(duì)象所指的日期,用本地時(shí)間表示格式。如:2000-07-21 15:43:46。 

toGMTString() 返回一個(gè)字符串,描述日期對(duì)象所指的日期,用 GMT 格式。 

toUTCString() 返回一個(gè)字符串,描述日期對(duì)象所指的日期,用 UTC 格式。 

parse() 用法:Date.parse(<日期對(duì)象>);返回該日期對(duì)象的內(nèi)部表達(dá)方式。 

下面例子顯示當(dāng)前日期: 

<html> 

<body> 

<script language="JavaScript"> 

today = new Date(); 

var day; var date; 

if(today.getDay()==0) day = "星期日" 

if(today.getDay()==1) day = "星期一" 

if(today.getDay()==2) day = "星期二" 

if(today.getDay()==3) day = "星期三" 

if(today.getDay()==4) day = "星期四" 

if(today.getDay()==5) day = "星期五" 

if(today.getDay()==6) day = "星期六" 

date = "今天是" + (today.getYear()) + "年" + (today.getMonth() + 1 ) + "月 " + today.getDate() + " 日 " + day +""; 

document.write(date); 

</script> 

</body> 

</html> 


 2.文檔對(duì)象 

文檔對(duì)象是指在網(wǎng)頁(yè)文檔里劃分出來(lái)的對(duì)象。在 JavaScript 能夠涉及的范圍內(nèi)有如下幾個(gè)對(duì)象:window, document, location, navigator, screen, history 等。下面是一個(gè)文檔對(duì)象樹(shù)。 

要引用某個(gè)對(duì)象,就要把父級(jí)的對(duì)象都列出來(lái)。例如,要引用某表單MyForm的某文字框UserName,就要用document. MyForm. UserName。 

引用Form下的表單元素對(duì)象不使用名稱(chēng),比如Button,而是通過(guò)對(duì)象的ID 或 Name進(jìn)行引用,或使用它所屬的對(duì)象數(shù)組。比如: 

<input id="UserName" type="text" /> 

var name = document.getElementById("UserName");//通過(guò)id獲取值 

1navigator 

navigator 瀏覽器對(duì)象 反映了當(dāng)前使用的瀏覽器的資料。 

屬性 

appCodeName 返回瀏覽器的碼名,流行的 IE 和 NN 都返回 'Mozilla'。 

appName 返回瀏覽器名。IE 返回 'Microsoft Internet Explorer',NN 返回 'Netscape'。

appVersion 返回瀏覽器版本,包括了大版本號(hào)、小版本號(hào)、語(yǔ)言、操作平臺(tái)等信息。 

platform 返回瀏覽器的操作平臺(tái),對(duì)于 Windows 9x 上的瀏覽器,返回 'Win32'(大小寫(xiě)可能有差異)。 

userAgent 返回以上全部信息。例如,IE5.01 返回 'Mozilla/4.0 (compatible; MSIE 5.01; Windows 98)'。 

javaEnabled() 返回一個(gè)布爾值,代表當(dāng)前瀏覽器允許不允許 Java。 

2screen 

screen 屏幕對(duì)象 反映了當(dāng)前用戶(hù)的屏幕設(shè)置。 

屬性 

width 返回屏幕的寬度(像素?cái)?shù))。 height 返回屏幕的高度。 availWidth 返回屏幕的可用寬度(除去了一些不自動(dòng)隱藏的類(lèi)似任務(wù)欄的東西所占用的寬度)。

 availHeight 返回屏幕的可用高度。

 colorDepth 返回當(dāng)前顏色設(shè)置所用的位數(shù) - 1:黑白;8:256色;16:增強(qiáng)色;24/32:真彩色 

(3)window 

window 窗口對(duì)象是最大的對(duì)象,它描述的是一個(gè)瀏覽器窗口。一般要引用它的屬性和方法時(shí),不需要用window.xxx這種形式,而直接使用xxx。一個(gè)框架頁(yè)面也是一個(gè)窗口。 

屬性 

name 窗口的名稱(chēng),由打開(kāi)它的連接(<a target="...">)或框架頁(yè)(<frame name="...">)或某一個(gè)窗口調(diào)用的 open() 方法決定。一般我們不會(huì)用這個(gè)屬性。 

status 指窗口下方的狀態(tài)欄所顯示的內(nèi)容。通過(guò)對(duì) status 賦值,可以改變狀態(tài)欄的顯示。 

opener 用法:window.opener;返回打開(kāi)本窗口的窗口對(duì)象。

注意:返回的是一個(gè)窗口對(duì)象。如果窗口不是由其他窗口打開(kāi)的,在 Netscape 中這個(gè)屬性返回 null;在 IE 中返回未定義(undefined)。

undefined 在一定程度上等于 null。

注意:undefined 不是 JavaScript 常數(shù),如果你企圖使用undefined,那就真的返回未定義了。 

self 指窗口本身,它返回的對(duì)象跟 window 對(duì)象是一模一樣的。最常用的是self.close(),放在<a>標(biāo)記中:<a href="javascript:self.close()">關(guān)閉窗口</a>

 parent 返回窗口所屬的框架頁(yè)對(duì)象。 

top 返回占據(jù)整個(gè)瀏覽器窗口的最頂端的框架頁(yè)對(duì)象。

 history 歷史對(duì)象,見(jiàn)下。 

location 地址對(duì)象,見(jiàn)下。 

document 文檔對(duì)象,見(jiàn)下。 

方法 

open() 打開(kāi)一個(gè)窗口。 

用法:open(<URL字符串>, <窗口名稱(chēng)字符串>, <參數(shù)字符串>); <URL字符串>:描述所打開(kāi)的窗口打開(kāi)哪一個(gè)網(wǎng)頁(yè)。如果留空(''),則不打開(kāi)任何網(wǎng)頁(yè)。 <窗口名稱(chēng)字符串>:描述被打開(kāi)的窗口的名稱(chēng)(window.name),可以使用'_top'、'_blank'等內(nèi)建名稱(chēng)。這里的名稱(chēng)跟<a href="..." target="...">里的target屬性是一樣的。 <參數(shù)字符串>:描述被打開(kāi)的窗口的樣式。如果只需要打開(kāi)一個(gè)普通窗口,該字符串留空(''),如果要指定樣式,就在字符串里寫(xiě)上一到多個(gè)參數(shù),參數(shù)之間用逗號(hào)隔開(kāi)。 

例:打開(kāi)一個(gè) 400 x 100 的干凈的窗口: open('','_blank','width=400,height=100,menubar=no,toolbar=no, location=no,directories=no,status=no,scrollbars=yes,resizable=yes') 

參數(shù) 

top=# 

窗口頂部離開(kāi)屏幕頂部的像素?cái)?shù) 

left=# 

窗口左端離開(kāi)屏幕左端的像素?cái)?shù) 

width=# 

窗口的寬度 

height=# 

窗口的高度 

menubar=... 

窗口有沒(méi)有菜單,取值yesno 

toolbar=... 

窗口有沒(méi)有工具條,取值yesno 

location=... 

窗口有沒(méi)有地址欄,取值yesno 

directories=... 

窗口有沒(méi)有連接區(qū),取值yesno 

scrollbars=... 

窗口有沒(méi)有滾動(dòng)條,取值yesno 

status=... 

窗口有沒(méi)有狀態(tài)欄,取值yesno 

resizable=... 

窗口給不給調(diào)整大小,取值yesno 

fullscreen= 

窗口是否全屏,取值yesno 

open() 方法有返回值,返回的就是它打開(kāi)的窗口對(duì)象。所以, 

var newWindow = open('','_blank'); 

這樣把一個(gè)新窗口賦值到newWindow變量中,以后通過(guò)newWindow變量就可以控制窗口了。 

close()關(guān)閉一個(gè)已打開(kāi)的窗口。 

用法:window.close() 或 self.close():關(guān)閉本窗口; <窗口對(duì)象>.close():關(guān)閉指定的窗口。 如果該窗口有狀態(tài)欄,調(diào)用該方法后瀏覽器會(huì)警告:網(wǎng)頁(yè)正在試圖關(guān)閉窗口,是否關(guān)閉?然后等待用戶(hù)選擇是否;如果沒(méi)有狀態(tài)欄,調(diào)用該方法將直接關(guān)閉窗口。 

blur() 使焦點(diǎn)從窗口移走,窗口變?yōu)?/span>非活動(dòng)窗口。 focus() 是窗口獲得焦點(diǎn),變?yōu)?/span>活動(dòng)窗口。 

scrollTo() 用法:[<窗口對(duì)象>.]scrollTo(x, y);使窗口滾動(dòng),使文檔從左上角數(shù)起的(x, y)點(diǎn)滾動(dòng)到窗口的左上角。 

scrollBy() 用法:[<窗口對(duì)象>.]scrollBy(deltaX, deltaY);使窗口向右滾動(dòng) deltaX 像素,向下滾動(dòng) deltaY 像素。如果取負(fù)值,則向相反的方向滾動(dòng)。 

resizeTo() 用法:[<窗口對(duì)象>.]resizeTo(width, height);使窗口調(diào)整大小到寬 width 像素,高 height 像素。 

resizeBy() 用法:[<窗口對(duì)象>.]resizeBy(deltaWidth, deltaHeight);使窗口調(diào)整大小,寬增大 deltaWidth 像素,高增大 deltaHeight 像素。如果取負(fù)值,則減少。 

alert() 用法:alert(<字符串>);彈出一個(gè)只包含確定按鈕的對(duì)話框,顯示<字符串>的內(nèi)容,整個(gè)文檔的讀取、Script 的運(yùn)行都會(huì)暫停,直到用戶(hù)按下確定。 C

onfirm() 用法:confirm(<字符串>);彈出一個(gè)包含確定取消按鈕的對(duì)話框,顯示<字符串>的內(nèi)容,要求用戶(hù)做出選擇,整個(gè)文檔的讀取、Script 的運(yùn)行都會(huì)暫停。如果用戶(hù)按下確定,則返回 true 值,如果按下取消,則返回 false 值。 

prompt() 用法:prompt(<字符串>[, <初始值>]);彈出一個(gè)包含確認(rèn)”“取消和一個(gè)文本框的對(duì)話框,顯示<字符串>的內(nèi)容,要求用戶(hù)在文本框輸入一些數(shù)據(jù),整個(gè)文檔的讀取、Script 的運(yùn)行都會(huì)暫停。如果用戶(hù)按下確認(rèn),則返回文本框里已有的內(nèi)容,如果用戶(hù)按下取消,則返回 null 值。如果指定<初始值>,則文本框里會(huì)有默認(rèn)值。 

setTimeout()和setInterval()的使用 

這兩個(gè)方法都可以用來(lái)實(shí)現(xiàn)在一個(gè)固定時(shí)間段之后去執(zhí)行JavaScript。不過(guò)兩者各有各的應(yīng)用場(chǎng)景。 實(shí)際上,setTimeoutsetInterval的語(yǔ)法相同。它們都有兩個(gè)參數(shù),一個(gè)是將要執(zhí)行的代碼字符串,還有一個(gè)是以毫秒為單位的時(shí)間間隔,當(dāng)過(guò)了那個(gè)時(shí)間段之后就將執(zhí)行那段代碼。 不過(guò)這兩個(gè)函數(shù)還是有區(qū)別的,setInterval在執(zhí)行完一次代碼之后,經(jīng)過(guò)了那個(gè)固定的時(shí)間間隔,它還會(huì)自動(dòng)重復(fù)執(zhí)行代碼,而setTimeout只執(zhí)行一次那段代碼。 雖然表面上看來(lái)setTimeout只能應(yīng)用在on-off方式的動(dòng)作上,不過(guò)可以通過(guò)創(chuàng)建一個(gè)函數(shù)循環(huán)重復(fù)調(diào)用setTimeout,以實(shí)現(xiàn)重復(fù)的操作: 

showTime(); 

function showTime() 

var today = new Date(); 

alert("The time is: " + today.toString()); 

setTimeout("showTime()", 5000); 

一旦調(diào)用了這個(gè)函數(shù),那么就會(huì)每隔5秒鐘就顯示一次時(shí)間。如果使用setInterval,則相應(yīng)的代碼如下所示: 

setInterval("showTime()", 5000); 

function showTime() 

var today = new Date(); 

alert("The time is: " + today.toString()); 

這兩種方法可能看起來(lái)非常像,而且顯示的結(jié)果也會(huì)很相似,不過(guò)兩者的最大區(qū)別就是,setTimeout方法不會(huì)每隔5秒鐘就執(zhí)行一次showTime函數(shù),它是在每次調(diào)用setTimeout后過(guò)5秒鐘再去執(zhí)行showTime函數(shù)。這意味著如果showTime函數(shù)的主體部分需要2秒鐘執(zhí)行完,那么整個(gè)函數(shù)則要每7秒鐘才執(zhí)行一次。而setInterval卻沒(méi)有被自己所調(diào)用的函數(shù)所束縛,它只是簡(jiǎn)單地每隔一定時(shí)間就重復(fù)執(zhí)行一次那個(gè)函數(shù)。 如果要求在每隔一個(gè)固定的時(shí)間間隔后就精確地執(zhí)行某動(dòng)作,那么最好使用setInterval,而如果不想由于連續(xù)調(diào)用產(chǎn)生互相干擾的問(wèn)題,尤其是每次函數(shù)的調(diào)用需要繁重的計(jì)算以及很長(zhǎng)的處理時(shí)間,那么最好使用setTimeout。 用 setInterval 命令來(lái)創(chuàng)建的對(duì)象,可以用 clearInterval() 命令來(lái)終止。比如: 

var MyMar=setInterval(showTime(),speed); 

clearInterval(MyMar); 

4history 

history 歷史對(duì)象指瀏覽器的瀏覽歷史。 

屬性 

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)在打開(kāi)的網(wǎng)頁(yè)。history.go(0) 跟 location.reload() 是等效的。 

5location 

location 地址對(duì)象描述的是某一個(gè)窗口對(duì)象所打開(kāi)的地址。要表示當(dāng)前窗口的地址,只需要使用location就行了;若要表示某一個(gè)窗口的地址,就使用<窗口對(duì)象>.location。 

注意 屬于不同協(xié)議或不同主機(jī)的兩個(gè)地址之間不能互相引用對(duì)方的 location 對(duì)象,這是出于安全性的需要。例如,當(dāng)前窗口打開(kāi)的是www.a.com下面的某一頁(yè),另外一個(gè)窗口(對(duì)象名為:bWindow)打開(kāi)的是www.b.com的網(wǎng)頁(yè)。如果在當(dāng)前窗口使用bWindow.location,就會(huì)出錯(cuò):沒(méi)有權(quán)限。這個(gè)錯(cuò)誤是不能用錯(cuò)誤處理程序(Event Handler,參閱 onerror 事件)來(lái)接收處理的。 

屬性 

protocol 返回地址的協(xié)議,取值為 'http:','https:','file:' 等等。 hostname 返回地址的主機(jī)名,例如,一個(gè)http://www.microsoft.com/china/的地址,location.hostname == 'www.microsoft.com'。 port 返回地址的端口號(hào),一般 http 的端口號(hào)是 '80'。 host 返回主機(jī)名和端口號(hào),如:'www.a.com:8080'。 pathname 返回路徑名,如http://www.a.com/b/c.html,location.pathname == 'b/c.html'。 hash 返回#以及以后的內(nèi)容,如http://www.a.com/b/c.html#chapter4,location.hash == '#chapter4';如果地址里沒(méi)有#,則返回空字符串。 search 返回?以及以后的內(nèi)容,如http://www.a.com/b/c.asp?selection=3&jumpto=4,location.search == '?selection=3&jumpto=4';如果地址里沒(méi)有?,則返回空字符串。 href 返回以上全部?jī)?nèi)容,也就是說(shuō),返回整個(gè)地址。在瀏覽器的地址欄上怎么顯示它就怎么返回。如果想一個(gè)窗口對(duì)象打開(kāi)某地址,可以使用location.href = '...',也可以直接用location = '...'來(lái)達(dá)到此目的。 

方法 

reload() 相當(dāng)于按瀏覽器上的刷新(IE)或Reload(Netscape)鍵。 replace() 打開(kāi)一個(gè) URL,并取代歷史對(duì)象中當(dāng)前位置的地址。用這個(gè)方法打開(kāi)一個(gè) URL 后,按下瀏覽器的后退鍵將不能返回到剛才的頁(yè)面。 

6document 

document 文檔對(duì)象 描述當(dāng)前窗口或指定窗口對(duì)象的文檔。它包含了文檔從<head>到</body>的內(nèi)容。 用法:document (當(dāng)前窗口) 或 <窗口對(duì)象>.document (指定窗口) 

屬性 

lastModified 當(dāng)前文檔的最后修改日期,是一個(gè) Date 對(duì)象。 referrer 如果當(dāng)前文檔是通過(guò)點(diǎn)擊連接打開(kāi)的,則 referrer 返回原來(lái)的 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 屬性所表示的已訪問(wèn)連接顏色。 

方法 

open() 打開(kāi)文檔以便 JavaScript 能向文檔的當(dāng)前位置(指插入 JavaScript 的位置)寫(xiě)入數(shù)據(jù)。通常不需要用這個(gè)方法,在需要的時(shí)候 JavaScript 自動(dòng)調(diào)用。 

write(); writeln() 向文檔寫(xiě)入數(shù)據(jù),所寫(xiě)入的會(huì)當(dāng)成標(biāo)準(zhǔn)文檔 HTML 來(lái)處理。writeln() 與 write() 的不同點(diǎn)在于,writeln() 在寫(xiě)入數(shù)據(jù)以后會(huì)加一個(gè)換行。這個(gè)換行只是在 HTML 中換行,具體情況能不能夠是顯示出來(lái)的文字換行,要看插入 JavaScript 的位置而定。如在<pre>標(biāo)記中插入,這個(gè)換行也會(huì)體現(xiàn)在文檔中。 

clear() 清空當(dāng)前文檔。 

close() 關(guān)閉文檔,停止寫(xiě)入數(shù)據(jù)。如果用了 write[ln]() 或 clear() 方法,就一定要用 close() 方法來(lái)保證所做的更改能夠顯示出來(lái)。如果文檔還沒(méi)有完全讀取,也就是說(shuō),JavaScript 是插在文檔中的,那就不必使用該方法。 

現(xiàn)在我們已經(jīng)擁有足夠的知識(shí)來(lái)做以下這個(gè)很多網(wǎng)站都有的彈出式更新通知了。 

<script language="JavaScript"> <!-- var whatsNew = 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:增加了我的最?lèi)?ài)欄目。'); whatsNew.document.write('<p align="right">' + '<a href="javascript:self.close()">關(guān)閉窗口</a>'); whatsNew.document.close(); --> </script> 

當(dāng)然也可以先寫(xiě)好一個(gè) HTML 文件,在 open() 方法中直接 load 這個(gè)文件。 

7anchors[]; links[]; Link 

anchors[]; links[]; Link 連接對(duì)象。 

用法:document.anchors[[x]]; document.links[[x]]; <anchorId>; <linkId> 

document.anchors 是一個(gè)數(shù)組,包含了文檔中所有錨標(biāo)記(包含 name 屬性的<a>標(biāo)記),按照在文檔中的次序,從 0 開(kāi)始給每個(gè)錨標(biāo)記定義了一個(gè)下標(biāo)。 

document.links 也是一個(gè)數(shù)組,包含了文檔中所有連接標(biāo)記(包含 href 屬性的<a>標(biāo)記和<map>標(biāo)記段里的<area>標(biāo)記),按照在文檔中的次序,從 0 開(kāi)始給每個(gè)連接標(biāo)記定義了一個(gè)下標(biāo)。 如果一個(gè)<a>標(biāo)記既有 name 屬性,又有 href 屬性,則它既是一個(gè) Anchor 對(duì)象,又是一個(gè) Link 對(duì)象。 在 IE 中,如果在<a>標(biāo)記中添加id="..."屬性,則這個(gè)<a>對(duì)象被賦予一個(gè)標(biāo)識(shí)(ID),調(diào)用這個(gè)對(duì)象的時(shí)候只需要使用<id>就行了。很多文檔部件都可以用這個(gè)方法來(lái)賦予 ID,但要注意不能有兩個(gè) ID 相同。 

anchors 和 links 作為數(shù)組,有數(shù)組的屬性和方法。單個(gè) Anchor 對(duì)象沒(méi)有屬性;單個(gè) Link 對(duì)象的屬性見(jiàn)下。 

屬性 

protocol; hostname; port; host; pathname; hash; search; href 與 location 對(duì)象相同。 target 返回/指定連接的目標(biāo)窗口(字符串),與<a>標(biāo)記里的 target 屬性是一樣的。 

作者:csh624366188 發(fā)表于2012-4-12 13:00:15 原文鏈接
閱讀:221 評(píng)論:2 查看評(píng)論