我在我的网络应用程序中使用window.showModalDialog
。当我点击提交按钮时,我从服务器端调用此javascript。以下是我的代码。
window.showModalDialog(URL, 'popUpWindow', 'dialogHeight:250px, dialogWidth:420px,scrollbars=No,toolbar=no,menubar=no,location=no,directories=no, status=yes, modal=yes');
现在的问题是,当模态弹出窗口出现在我的父页面时,即在后台,它会显示我的页面仍在加载。我无法点击除showModalDialog
之外的任何其他控件。我希望后台页面完成其活动,然后打开对话框,否则我们可以允许在showModalDialog
开启时我们可以在父页面上工作。?
答案 0 :(得分:0)
您应该使用Document.readyState
。也许是这样的:
if(document.readyState === "complete") {
window.showModalDialog(URL, 'popUpWindow', 'dialogHeight:250px, dialogWidth:420px,scrollbars=No,toolbar=no,menubar=no,location=no,directories=no, status=yes, modal=yes');
}
文档的readyState
可以是以下之一:
<强>装载强>
文档仍在加载。
<强>交互式强>
文档已完成加载并且文档已被解析,但子资源(如图像,样式表和框架)仍在加载。状态表示DOMContentLoaded
事件已被触发。
<强>完整强>
文档和所有子资源已完成加载。状态表示已触发load事件。
或者可以向readystatechange事件添加一个事件监听器,如下所示:
document.addEventListener("readystatechange", function(){
if(document.readyState === "complete") {
window.showModalDialog(URL, 'popUpWindow', 'dialogHeight:250px, dialogWidth:420px,scrollbars=No,toolbar=no,menubar=no,location=no,directories=no, status=yes, modal=yes');
}
});