繁体   English   中英

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

[英]JS showModalDialog not working in chrome as modal

我在我的应用程序中使用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事件,再次聚焦自己

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

我需要让它工作,任何人都可以建议我吗?

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM