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