当你想使用window.showModalDialog函数时有什么情况?你可以使用window.open函数和几个删除一些chrome(导航,地址栏等等)的参数完全相同的接缝
您想何时使用window.showModalDialog和window.open?
答案 0 :(得分:18)
这个问题最初被问到已经过去几年了,事情发生了一些变化。 window.showModalDialog
现已正式standardized as part of HTML5,并且在IE,Firefox 3 +,Chrome(albeit buggy)和Safari 5.1+中受支持。
不幸的是window.showModalDialog
仍然受到许多问题的困扰。
window.showModalDialog
。因此,使用window.showModalDialog
仍然不是一个好主意。如果您需要打开的窗口是模态的(即用户在处理对话框之前无法与页面的其余部分进行交互),我建议使用jQuery UI's dialog plugin。
window.open
适用于非模态窗口,但我会坚持使用jQuery UI的对话框,因为打开新窗口会使用户烦恼。
如果您有兴趣,我会在我的博客上更详细地写下这些内容 - http://tjvantoll.com/2012/05/02/showmodaldialog-what-it-is-and-why-you-should-never-use-it/。
答案 1 :(得分:10)
模态对话框是父级打开的对话框,在关闭对话框之前不允许您专注于父级。
可以使用模式对话框来登录表单,编辑表单等,您希望弹出一个用户交互的弹出窗口,但不允许用户返回打开弹出窗口的窗口。
作为旁注,我认为只有Internet Explorer实现window.showModalDialog
,因此限制了它的使用。
答案 2 :(得分:4)
showModalDialog()
目前正在标准化为 HTML5 的一部分。第三个参数(对于其他选项)在HTML5版本中不存在,并且(安全地)被Safari和Chrome忽略。
http://dev.w3.org/html5/spec//user-prompts.html#dialogs-implemented-using-separate-documents
答案 3 :(得分:3)
请注意,Chrome 2中存在一个错误,导致showModalDialog()无法正常加载。出现弹出窗口,但内容从不加载。
避免使用showModalDialog()的另一个原因。
答案 4 :(得分:0)
showModalDialog()
适用于Internet Explorer,Firefox(3及以上版本)
适用于Chrome但弹出窗口不是模型(您可以转到父窗口)
答案 5 :(得分:0)
请注意,虽然您可以从任何弹出窗口显示模态,但您无法在某些浏览器(IE,Safari)中使用模型对话框中的window.open。