瀏覽器通過alert()、confirm()和prompt()方法可以調(diào)用系統(tǒng)對話框向用戶顯示消息。系統(tǒng)對話框與在瀏覽器中顯示的網(wǎng)頁沒有關(guān)系,也不包含HTML。它們的外觀由操作系統(tǒng)及(或)瀏覽器設(shè)置決定,而不是由CSS決定。此外,通過這幾個(gè)方法打開的對話框都是同步和模態(tài)的。也就是說,顯示這些對話框的時(shí)候代碼會停止執(zhí)行,而關(guān)掉這些對話框后代碼又會恢復(fù)執(zhí)行。
南昌網(wǎng)站建設(shè)公司工程師前幾年經(jīng)常會用到alert()方法,這個(gè)方法接受一個(gè)字符串并將其顯示給用戶。具體來說,調(diào)用alert()方法的結(jié)果就是向用戶顯示一個(gè)系統(tǒng)對話框,其中包含指定的文本和一個(gè)OK(“確定”) 按鈕。例如,alert(”Hello world!”)會在Windows XP系統(tǒng)的IE中生對話框。
通常使用alert()生成的“警告”對話框向用戶顯示一些他們無法控制的消息,例如錯(cuò)誤消息。而用戶只能在看完消息后關(guān)閉對話框。
第二種對話框是調(diào)用confirm()方法生成的。從向用戶顯示消息的方面來看,這種“確認(rèn)”對話
框很像是一個(gè)“警告”對話框。但二者的主要區(qū)別在于“確認(rèn)”對話框除了顯示OK按鈕外,還會顯示一個(gè)Cancel(“取消”)按鈕,兩個(gè)按鈕可以讓用戶決定是否執(zhí)行給定的操作。例如,confirm( "Are you sure?”)會顯示確認(rèn)對話框。
為了確定用戶是單擊了OK還是Cancel,可以檢查confirm()方法返回的布爾值:true表示單擊了OK,false表示單擊了Cancel或單擊了右上角的X按鈕.確認(rèn)對話框的典型用法如下:
if (confirm(nAre you sure?”)) {
alert(”i'm so glad you' re surel ");
} else{
alert("i'm sorry to hear you' re not sure.”);
}
在這個(gè)例子中,第一行代碼(if條件語句)會向用戶顯示一個(gè)確認(rèn)對話框。如果用戶單擊了OK,則通過一個(gè)警告框向用戶顯示消息I'm so glad you're sure!。如果用戶單擊的是Cancel按鈕,則通過警告框顯示I'm sorry to hear you're not sure.。這種模式經(jīng)常在用戶想要執(zhí)行刪除操作的時(shí)候使用,例如刪除電子郵件。
最后一種對話框是通過調(diào)用prompt()方法生成的,這是一個(gè)“提示”框,用于提示用戶輸入一些文本。提示框中除了顯示OK和Cancel按鈕之外,還會顯示一個(gè)文本輸入域,以供用戶在其中輸入內(nèi)容。prompt()方法接受兩個(gè)參數(shù):要顯示給用戶的文本提示和文本輸入域的默認(rèn)值(可以是一個(gè)空字符串)。調(diào)用prompt(”What's your name?”,”Michael ")會得到對話框。
如果用戶單擊了OK按鈕,則prompt0返回文本輸入域的值;如果用戶單擊了Cancel或沒有單擊OK而是通過其他方式關(guān)閉了對話框,則該方法返回null。下面是一個(gè)例子:
var result=prompt( "What is your name?“, …);
if(result!==null) {
alert( "Welcome. " +result);
}
綜上所述,這些系統(tǒng)對話框很適合向用戶顯示消息并請用戶作出決定。由于不涉及HTML、CSS或JavaScript,因此它們是增強(qiáng)Web應(yīng)用程序的一種便捷方式。
除了上述三種對話框之外,Google Chrome瀏覽器還引入了一種新特性。如果當(dāng)前腳本在執(zhí)行過程中會打開兩個(gè)或多個(gè)對話框,那么從第二個(gè)對話框開始,每個(gè)對話框中都會顯示一個(gè)復(fù)選框,以便用戶阻止后續(xù)的對話框顯示——除非用戶刷新頁面。
如果用戶勾選了其中的復(fù)選框,并且關(guān)閉了對話框,那么除非用戶刷新頁面,所有后續(xù)的系統(tǒng)對話框(包括警告框、確認(rèn)框和提示框)都會被屏蔽。Chrome 0.2沒有就對話框是否顯示向開發(fā)人員提供任何信息。由于瀏覽器會在空閑時(shí)重置對話框計(jì)數(shù)器,因此如果兩次獨(dú)立的用戶操作分別打開兩個(gè)警告框,那么這個(gè)兩警告框中都不會顯示復(fù)選框。而如果是同一次用戶操作會生成兩個(gè)警告框,那么第二個(gè)警告框中就會顯示復(fù)選框。我們希望Chrome l.0發(fā)布時(shí)這一特性能夠得到改進(jìn),即向開發(fā)人員提供對話框是否成功打開的信息。
南昌網(wǎng)站設(shè)計(jì)公司工程師認(rèn)為,alert()對于開發(fā)來者是非常實(shí)用的檢查系統(tǒng)運(yùn)行命令,在程序開過程中要直觀地看到相關(guān)的參數(shù),我們可以使用該命令輸入出.但在用戶交互過程中,使用alert命令給用戶的體驗(yàn)是很不好的,南昌網(wǎng)絡(luò)公司工程師建設(shè)盡量使用異步通信技術(shù)來實(shí)現(xiàn)比較人性化的提示.
還有兩個(gè)可以通過JavaScript打開的對話框,即“查找”和“打印”。這兩個(gè)對話框都是異步顯示的,能夠?qū)⒖刂茩?quán)立即交還給腳本。這兩個(gè)對話框與用戶通過瀏覽器菜單的“查找”和“打印”命令打開的對話框相同。而在JavaScript中則可以像下面這樣通過window對象的find()和print()方法
打開它們:
//顯示“打印”對話框
window.print();
//顯示“查找”對話框
window. find();
這兩個(gè)方法同樣不會就用戶在對話框中的操作給出任何信息,因此它們的用處有限。另外,既然這兩個(gè)對話框是異步顯示的,那么Chrome的對話框計(jì)數(shù)器就不會將它們計(jì)算在內(nèi),所以它們也不會受用戶禁用后續(xù)對話框顯示的影響。
本文僅限內(nèi)部技術(shù)人員學(xué)習(xí)交流,不得作于其他商業(yè)用途.文章出自:南昌網(wǎng)站制作公司-百恒網(wǎng)絡(luò) http://www.myforexfactory.net 如轉(zhuǎn)載請注明出處!