JavaScript高级程序设计之BOM之window 对象之系统对话框 第8.1.7讲笔记

浏览器通过alert()、confirm()和prompt()方法可以调用系统对话框向用户显示消息。系统对
话框与在浏览器中显示的网页没有关系,也不包含HTML。它们的外观由操作系统及(或)浏览器设置
决定,而不是由CSS 决定。此外,通过这几个方法打开的对话框都是同步和模态的。也就是说,显示这
些对话框的时候代码会停止执行,而关掉这些对话框后代码又会恢复执行。
本书各章经常会用到alert()方法,这个方法接受一个字符串并将其显示给用户。具体来说,调用
alert()方法的结果就是向用户显示一个系统对话框,其中包含指定的文本和一个OK(“确定”)按钮。
例如,alert("Hello world!")会在Windows XP 系统的IE 中生成如图8-3 所示的对话框。
通常使用alert()生成的“警告”对话框向用户显示一些他们无法控制的消息,例如错误消息。而
用户只能在看完消息后关闭对话框。
第二种对话框是调用confirm()方法生成的。从向用户显示消息的方面来看,这种“确认”对话
框很像是一个“警告”对话框。但二者的主要区别在于“确认”对话框除了显示OK 按钮外,还会显示
一个Cancel(“取消”)按钮,两个按钮可以让用户决定是否执行给定的操作。例如,confirm("Are you
sure?")会显示如图8-4 所示的确认对话框。
 
为了确定用户是单击了OK 还是Cancel,可以检查confirm()方法返回的布尔值:true 表示单击
了OK,false 表示单击了Cancel 或单击了右上角的X 按钮。确认对话框的典型用法如下。
if (confirm("Are you sure?")) {
alert("I'm so glad you're sure! ");
} 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.。这种模式经常在用户想要执行删除操作的时候使用,例如删
除电子邮件。
最后一种对话框是通过调用prompt()方法生成的,这是一个“提示”框,用于提示用户输入一些
文本。提示框中除了显示OK 和Cancel 按钮之外,还会显示一个文本输入域,以供用户在其中输入内容。

prompt()方法接受两个参数:要显示给用户的文本提示和文本输入域的默认值(可以是一个空字符串)。

为了确定用户是单击了OK 还是Cancel,可以检查confirm()方法返回的布尔值:true 表示单击
了OK,false 表示单击了Cancel 或单击了右上角的X 按钮。确认对话框的典型用法如下。

if (confirm("Are you sure?")) {
alert("I'm so glad you're sure! ");
} 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.。这种模式经常在用户想要执行删除操作的时候使用,例如删
除电子邮件。
最后一种对话框是通过调用prompt()方法生成的,这是一个“提示”框,用于提示用户输入一些
文本。提示框中除了显示OK 和Cancel 按钮之外,还会显示一个文本输入域,以供用户在其中输入内容。
prompt()方法接受两个参数:要显示给用户的文本提示和文本输入域的默认值(可以是一个空字符串)。

调用prompt("What's your name?","Michael")会得到如图8-5 所示的对话框。

如果用户单击了OK 按钮,则prompt()返回文本输入域的值;如果用户单击了Cancel 或没有单击
OK 而是通过其他方式关闭了对话框,则该方法返回null。下面是一个例子。

综上所述,这些系统对话框很适合向用户显示消息并请用户作出决定。由于不涉及HTML、CSS 或
JavaScript,因此它们是增强Web 应用程序的一种便捷方式。
除了上述三种对话框之外,Google Chrome 浏览器还引入了一种新特性。如果当前脚本在执行过程
中会打开两个或多个对话框,那么从第二个对话框开始,每个对话框中都会显示一个复选框,以便用户
阻止后续的对话框显示,除非用户刷新页面(见图8-6)。


如果用户勾选了其中的复选框,并且关闭了对话框,那么除非用户刷新页面,所有后续的系统对话
框(包括警告框、确认框和提示框)都会被屏蔽。Chrome 没有就对话框是否显示向开发人员提供任何
信息。由于浏览器会在空闲时重置对话框计数器,因此如果两次独立的用户操作分别打开两个警告框,
那么这两个警告框中都不会显示复选框。而如果是同一次用户操作会生成两个警告框,那么第二个警告
框中就会显示复选框。这个新特性出现以后,IE9 和Firefox 4 也实现了它。
还有两个可以通过JavaScript 打开的对话框,即“查找”和“打印”。这两个对话框都是异步显示
的,能够将控制权立即交还给脚本。这两个对话框与用户通过浏览器菜单的“查找”和“打印”命令
打开的对话框相同。而在JavaScript 中则可以像下面这样通过window 对象的find()和print()方法
打开它们。

//显示“打印”对话框
window.print();
//显示“查找”对话框
window.find();
这两个方法同样不会就用户在对话框中的操作给出任何信息,因此它们的用处有限。另外,既然这
两个对话框是异步显示的,那么Chrome 的对话框计数器就不会将它们计算在内,所以它们也不会受用
户禁用后续对话框显示的影响。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值