gpt4 book ai didi

javascript - JS showModalDialog 不能在 chrome 中作为模态工作

转载 作者:行者123 更新时间:2023-11-30 13:09:33 24 4
gpt4 key购买 nike

我在我的应用程序中使用 showModalDialog(),供用户以模式弹出窗口的形式查看来自不同来源的文章。

它在 FF 和 IE 上运行良好,但在 chrome 中它不是模态的,我仍然可以继续父窗口并单击其中的任何元素。

我想让它像 IE 和 FF 一样工作。

我看过一些解决方法

1) 在父窗口上设置onfocus 事件,让子窗口再次关注它。

     <script type="text/javascript">
setInterval(checkFocus, 10);
var mywindow;
function openModal() {
var a = new Array;
a[0] = 1;
a[1] = 4;
mywindow = window.showModalDialog(myurl,
a, "dialogwidth: 1000; dialogheight: 700; resizable: yes;center : yes;");
}

function checkFocus() {
if (mywindow != null && mywindow != undefined) {
if (window.focus) {
mywindow.focus();
}
}
}
</script>

但这似乎没有按预期工作。

2) 在子窗口上设置onblur事件,使其再次聚焦

这个解决方案是我从一些在线资源中读到的。如果只有子窗口是来 self 的域的自定义页面,我可以应用此解决方案,但因为我的子窗口可以是来自任何 domain 的任何 url 它不适用于我的案例。

我需要让它发挥作用,有人可以建议我吗??

最佳答案

Chrome 的实现存在严重错误。最重要的是,Chrome 显示的窗口不是模态的(请参阅 Chromium bug #16045),这意味着用户可以在处理模态对话框之前与原始窗口进行交互。

关于javascript - JS showModalDialog 不能在 chrome 中作为模态工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14399127/

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