Javascript 将setTimeout与chrome中的showModalDialog一起使用将阻止该选项卡

Javascript 将setTimeout与chrome中的showModalDialog一起使用将阻止该选项卡,javascript,google-chrome,settimeout,window.open,showmodaldialog,Javascript,Google Chrome,Settimeout,Window.open,Showmodaldialog,我需要一个关于ShowModalDialog和setTimeout的函数,所以我测试了弹出窗口 谷歌Chrome中的ModalDialog和我遇到了一些问题。 页面加载时显示两个弹出窗口。一个由winodw.open()打开, 另一个窗口由window.showmodaldialog()打开,如下所示: setTimeout(function(){window.open("PopupWindow.html","_blank","")},100); setTimeout(function(){wi

我需要一个关于ShowModalDialog和setTimeout的函数,所以我测试了弹出窗口 谷歌Chrome中的ModalDialog和我遇到了一些问题。 页面加载时显示两个弹出窗口。一个由winodw.open()打开, 另一个窗口由window.showmodaldialog()打开,如下所示:

setTimeout(function(){window.open("PopupWindow.html","_blank","")},100);
setTimeout(function(){window.showModalDialog("ModalDialog.html","","")},100)};
打开两个弹出窗口后,我单击pupupUpWindow.html上的一个按钮。它会打电话的 功能如下:

function test()
{
  setTimeout(function(){alert("test");},1000);
}
在Google Chrome 14中工作正常。在我把谷歌浏览器升级到19版之后, 调用test()时PopupWindow.html将挂起,直到关闭ModalDialog.html。 请告诉我为什么谷歌Chrome19或任何方式做showModalDialog的情况下打破
在Google Chrome 19上安装window.open()。感谢您的帮助。

新版Chrome实际上表现出了正确的行为。我在Safari和Firefox中也有同样的行为

模态对话框的本质是防止用户在完成模态对话框之前与应用程序的其余部分进行交互

Chrome一直受到许多问题的困扰,无法正确处理这些问题。有关一些示例,请参见和。如果你经历了不同的行为,他们可能最终开始清理其中的一些

通常,应避免使用
window.showModalDialog
,原因如下-

如果你需要一个模态对话框,我强烈推荐