对话框( Dialog
)是响应用户某种需求而弹出的小窗口。本节将介绍几种常用的对话框:警告对话框、询问回答对话框及提示对话框。
在页面显示时弹出警告对话框主要是在 <body>
标记中调用 Window
对象的 alert
方法实现的。
利用 Window
对象的 alert
方法可以弹出一个警告框,并且在警告框内可以显示提示字符串文本。
window.alert(str);
警告对话框是由当前运行的页面弹出的。在对该对话框进行处理之前,不能对当前页面进行操作,并且其后面的代码也不会被执行。只有将警告对话框进行处理后(如单击"确定"按钮或者关闭对话框),才可以对当前页面进行操作,后面的代码也才能继续执行。
也可以利用 alert 方法对代码进行调试。当弄不清楚某段代码执行到哪里,或者不知道当前变量的取值情况时,便可以利用该方法显示有用的调试信息 。
使用 alert()方法可以弹出一个带有警告消息的对话框以提示用户一些信息。该方法的语法格式如下:
alert(msg);
参数 msg 即是要显示的文本字符串,该字符串不会以 HTML 格式显示在对话框中,也就是说, HTML 将原样显示。
对话框提供了一个"确定"按钮让用户关闭该对话框,并且用户必须先关闭该对话框然后才能继续进行操作,同时, JavaScript 代码也在这里中断,直到关闭该对话框继续执行之后的代码。
例如下面的代码:
alert("欢迎您的访问!请按"确定"按钮继续!" );
Window 对象的 confirm 方法用于弹出一个询问回答为是或否问题的对话框。该对话框中包含两个按钮(在中文操作系统中显示为"确定"和"取消",在英文操作系统中显示为 "OK"和 "Cancel")。用户单击"确定"按钮,返回值为 true ;单击"取消"按钮,返回值为 false 。
window.confirm(question);
使用 confirm()方法可以弹出一个带有提示消息的对话框向用户提出一个"是 /否"的问题,该对话框会出现两个按钮,分别代表"是"和"否"。用户单击"确定"按钮表示选择"是",单击"取消"按钮表示选择"否"。该方法的语法格式如下:
confirm(msg);
参数 msg 即是要显示的文本字符串,与 alert()方法功能相同。
该方法的返回值为 true (单击"确定"按钮)或 false (单击"取消"按钮)。用户必须在响应该对话框(单击任一个按钮)将其关闭后,才能进行下一步操作。例如下面的代码:
var returned = confirm('请选择一个按钮单击!');
if (returned === true) {
alert('您单击了"确定"按钮!');
} else {
alert('您单击了"取消"按钮!');
}
利用 Window 对象的 prompt 方法可以在浏览器窗口中弹出一个提示框。与警告对话框和询问回答对话框不同,在提示框中有一个输入框。当显示输入框时,在输入框内显示提示字符串,在输入文本框显示缺省文本,并等待用户输入。当用户在该输入框中输入文字后,并单击"确定"按钮时,返回用户输入的字符串;当单击"取消"按钮时,返回 null 值。
语法格式如下:
window.prompt(str1, str2)
有时需要让用户输入一些消息进行判断,而不仅仅是选择"是"或"否",使用 prompt()方法可以实现这个目的。
prompt()方法可以弹出一个提示输入消息对话框,该对话框中有一个文本框,用户可以在此文本框中输入一行消息来响应提示。该对话框还有一个"确定"按钮和一个"取消"按钮。 prompt()方法的语法格式如下:
prompt(msg, [input]);
prompt()方法的返回值是一个整数或者一个字符串,表示用户输入的消息。如果用户单击了"取消"按钮,那么返回的是 null 。用户必须在响应该对话框(单击任一个按钮)将其关闭后,才能进行下一步操作。例如下面的代码:
var returned = prompt('欢迎您的访问!', '请在此输入您的名字!');
if (returned != null) {
alert('您输入的消息是:' + returned);
} else {
alert('您单击了"取消"按钮!');
}
当用户输入消息并单击"确定"按钮后,输入的值就会被返回,并被保存在变量 returned 中;当用户单击"取消"按钮后,返回的值为 null ,也被保存在变量 returned 中。使用条件语句检测该变量可以获得用户单击了哪个按钮,最后使用一个警告框来显示用户的输入消息或者没有选择输入消息。
由于 window 对象位于对象层次的顶层,因此实际应用中不必在这些方法前加 window ,而是直接使用方法名,例如下面的语句与前面是等价的:
alert('欢迎你的访问!请按"确定"按钮继续!');
var returned = confirm('请选择一个按钮单击!');
var returned = prompt('欢迎你的访问!', '请在此输入你的名字!');
而这 3个方法的使用又是如此的普遍,所以它们常被误认为是全局函数。不过推荐采用完全限定对象名的方法,这样有助于分类记忆。
window.showModalDialog()方法可以创建增强的交互式对话框。使用该方法可以打开一个新窗口类型的对话框,但不像前面介绍的那些对话框,该对话框窗口可以加载一个网页,并且对话框窗口网页中的代码能够和打开它的窗口交互。这种对话框称为模式对话框( modal ),在打开的时候,可以操控当前打开的对话框,而且仍允许用户操控打开它的窗口。
show Modal Dialog()方法的语法格式如下:
vReturnValue = window.showModalDialog(sURL[,vArguments])
可使用 window.returnValue 属性获取该方法返回的值。
例如下面的应用范例:
window.showModalDialog(' myDialog.html');
注意该方法与 window.open()方法不同, showModalDialog()方法弹出的对话框窗口始终获得焦点。
虽然加载的是一个网页,但是对话框窗口不能刷新。
注意,一些浏览器默认会阻止弹出窗口,这时需设置允许弹出新窗口。