gpt4 book ai didi

javascript - 在 Chrome 中使用 setTimeout 和 showModalDialog 会阻止选项卡

转载 作者:行者123 更新时间:2023-11-28 09:51:08 28 4
gpt4 key购买 nike

我需要一个关于ShowModalDialog和setTimeout的功能,所以我测试了弹出窗口 和 Google Chrome 中的 ModalDialog 我遇到了一些问题。 load页面有两个弹出窗口,其中一个是通过winodw.open()打开的, 另一个由 window.showmodaldialog() 打开,如下所示:

setTimeout(function(){window.open("PopupWindow.html","_blank","")},100);
setTimeout(function(){window.showModalDialog("ModalDialog.html","","")},100)};

打开两个弹出窗口后,我单击 PupupWindow.html 上的按钮。它会调用函数如下:

function test()
{
setTimeout(function(){alert("test");},1000);
}

它在 Google Chrome 14 中运行良好。当我将 Google Chrome 更新到版本 19 后,当调用 test() 时,PopupWindow.html 将挂起,直到 ModalDialog.html 关闭。请告诉我为什么这个案例在 Google Chrome 19 上失败或有任何方法可以执行 showModalDialog以及 Google Chrome 19 上的 window.open()。感谢您的帮助。

最佳答案

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

模态对话框本质上应该阻止用户与应用程序的其余部分交互,直到他们完成模态对话框。

Chrome 因未能正确处理此问题而受到许多问题的困扰。请参阅http://code.google.com/p/chromium/issues/detail?id=4202 , http://code.google.com/p/chromium/issues/detail?id=16045 ,和http://code.google.com/p/chromium/issues/detail?id=42939举一些例子。如果您遇到不同的行为,他们似乎终于开始清理其中的一些内容了。

一般来说,应避免使用 window.showModalDialog,原因有很多,我在此详细说明 - http://tjvantoll.com/2012/05/02/showmodaldialog-what-it-is-and-why-you-should-never-use-it/ .

如果您需要模式对话框,我强烈推荐 jQuery UI's dialog plugin .

关于javascript - 在 Chrome 中使用 setTimeout 和 showModalDialog 会阻止选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10945295/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com