Warning:
This wiki has been archived and is now read-only.
HTML5/user-prompts
Contents
用户提示
简单对话框
window . alert(message)
使用给出的信息,显示一个情态提示,并等待用户关闭。
调用该方法时,隐含的调用了一个navigator.yieldForStorageUpdates()
方法。
result = window . confirm(message)
使用给出的信息,显示一个“确定”/“取消”提示,等待用户关闭,并且如果用户点击“确定”则返回真,如果用户点击“取消”则返回假。
调用该方法时,隐含的调用了一个navigator.yieldForStorageUpdates()
方法。
result = window . prompt(message [, default] )
使用给出的信息,显示一个情态文本字段提示,等待用户关闭,并且返回用户输入的值。如果用户点击提示的“取消”按钮,则返回null。如果给出的第二个参数,则该参数的值将被用作默认值。
调用该方法时,隐含的调用了一个navigator.yieldForStorageUpdates()
方法。
调用alert(message)方法时,必须执行下列步骤:
调用confirm(message)方法时,必须执行下列步骤:
- 如果事件循环的终止嵌套级别不是零,则可以跳过这些步骤,并返回假。
- 释放存储互斥。
- 将信息展示给用户,并且要求用户做出肯定或否定的反馈。
- 在用户做出肯定或否定的反馈前保持暂停。
- 如果用户做出肯定反馈,则返回真;否则,用户做出否定反馈,则返回假。
调用prompt(message, default)方法时,必须执行下列步骤:
- 如果事件循环的终止嵌套级别不是零,则可以跳过这些步骤,并返回null。
- 释放存储互斥。
- 将信息展示给用户,并且要求用户反馈一个字符串值或者跳过。第二个参数是可选的。如果给出了第二个参数(default),则反馈的内容必须以给出的值作为其默认值。
- 在用户做出反馈前保持暂停。
- 如果用户跳过,则返回null;否则,返回用户反馈的字符串。
打印
调用print()方法时,如果Document的负荷后任务准备就绪,则用户代理必须同步的运行印刷步骤。否则,用户代理必须仅在Document上设置负荷时打印标记。
用户代理还应当在用户要求获得文档的物理形式(例如印刷副本)或物理形式的替代(例如PDF副本)的机会时运行印刷步骤。
印刷步骤如下:
- 用户代理可以显示一个消息给用户,并且/或者,可以跳过这些步骤。
例如,一个终端浏览器可以静默地忽略对print()方法的调用。
例如,一个移动设备上的浏览器可以检查附近没有打印机,并紧接显示一个消息提示“保存为PDF”选项。 - 用户代理必须在被印刷的Document的Window对象上触发一个名为
beforeprint
的简单事件,其嵌套浏览器上下文也同样。beforeprint
事件可以用户注释打印副本,例如添加文档打印时的时间。 - 用户代理必须释放存储互斥。
- 用户代理应该向用户提供获取获得文档的物理形式(或物理形式的替代)的机会。用户代理可以在返回之前等待用户同意或取消;如果这样,用户代理可以在等待时暂停。Even if the user agent doesn't wait at this point, the user agent must use the state of the relevant documents as they are at this point in the algorithm if and when it eventually creates the alternate form.
- 用户代理必须在被印刷的Document的Window对象上触发一个名为
afterprint
的简单事件,其嵌套浏览器上下文也同样。afterprint
事件可以用户回复之前添加的注释,以及显示打印后的UI,例如如果一个页面是用户申请住房贷款过程中的一个步骤,则脚本可以在表单等打印完成后自动的前进到下一步。
使用独立文档实现的对话框
result = window . showModalDialog(url [, argument] )
使用给出的页面向用户提示,等待页面关闭,并返回返回值。
调用该方法时,隐含的调用navigator.yieldForStorageUpdates()方法。
在调用showModalDialog(url, argument)方法时,用户代理必须执行下列步骤:
- 相对于入口脚本的基础URL解析url。
如果失败,则抛出一个SyntaxError异常并跳过这些步骤。 - 如果事件循环的终止嵌套级别不为零,则可以跳过这些步骤,返回空字符串。
- 释放存储互斥。
- 如果用户代理被配置为禁止调用showModalDialog(),则返回空字符串并跳过这些步骤。注:我们希望用户代理在某些情况下禁用该方法,以避免打扰用户(例如其弹出窗口拦截功能的一部分)。例如,用户代理可以在启用该方法之前要求一个网站的白名单,或者用户代理可以被配置为仅允许本次情景对话框。
- 如果当前浏览器上下文在其活跃文档被创建时设置了沙箱导航浏览器上下文标志,则返回空字符串并跳过这些步骤。
- 设背景浏览器上下文列表为所有符合下列条件的浏览器上下文的列表:
- 与调用showModalDialog()方法的Window对象的浏览器上下文相同的相关浏览器上下文单元的部分,且
- 其活跃文档的源与调用showModalDialog()方法的脚本的源相同。
- …嵌套在任意符合上面条件的浏览器上下文中的浏览器上下文也是如此。
- 禁用所有背景浏览器上下文列表中的浏览器上下文的用户界面。这应该阻止用户导航这些浏览器上下文、产生要传递至这些浏览器上下文的事件、或编辑这些浏览器上下文中的内容。但是这不会阻止这些浏览器接受并非来源于用户、运行脚本、运行动画等的源的事件。
- 创建一个新的辅助浏览器上下文,其开启者浏览器上下文为调用showModalDialog()方法的Window对象的浏览器上下文。新的辅助浏览器上下文没有名称。
- 将新浏览器上下文的对话框参数设为argument的值,或者如果忽略了该参数则为‘undefined’值。
- 设对话框参数的源为调用showModalDialog()方法的脚本的源。
- 将新浏览器上下文导航至之前解析url返回的绝对URL,启用替换,且调用该方法的脚本的浏览器上下文为源浏览器上下文。
- 在新浏览器上下文关闭之前保持旋转事件循环。(用户代理必须允许用户指定要关闭的浏览器上下文。)
- 重新启用所有背景浏览器上下文列表中的浏览器上下文的用户界面。
- 返回辅助浏览器上下文的返回值。
宿主为由上述算法创建的浏览器上下文的Document的Window对象也必须实现WindowModal接口。
[NoInterfaceObject] interface WindowModal { readonly attribute any dialogArguments; attribute DOMString returnValue; };
window . dialogArguments
返回传递给showModalDialog()方法的argument参数。
window . returnValue [ = value ]
返回window的当前返回值。
可以被设置,用来改变showModalDialog()方法返回的值。
这些浏览器上下文拥有相关联的对话框参数,其与对话框参数的源一起储存。这些值在该浏览器上下文被创建时基于上述算法中showModalDialog()方法提供的参数设置。
对于dialogArguments IDL属性,在获取时,必须检查该浏览器上下文的活跃文档的源是否与对话框参数的源相同。如果相同,则浏览器上下文的对话框参数必须原样返回。否则,如果对话框参数是一个对象,则必须返回空字符串;如果对话框参数不是对象,则必须返回对话框参数的字符串化形式。
这些浏览器上下文同时还拥有相关联的返回值。一个浏览器上下文的返回值必须在创建浏览器上下文时被初始化为空字符串。
对于returnValue IDL属性,在获取时,必须返回浏览器的返回值;在设置时,必须设返回值为给出的新值。