[英]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.