有没有办法检测在模态对话框中加载页面的时间?比如当你调用window.showModalDialog()时。
一点背景:我正试图解决模式对话框中出现的登录页面的表单身份验证问题,以及用户登录时网站的其余部分。
有什么想法吗?
答案 0 :(得分:6)
对于window.open,您可以检查您当前所在的页面是否有父母。
function parentExists(){
return (window.opener != null)? true : false;
}
加载登录页面时调用此方法。如果它返回true,则表示您处于弹出窗口(或模态)中。然后,您可以关闭页面并重定向父页面。
对于模态框来说这有点棘手,因为你无法访问开启者。首先,确保所有模态框都打开类似于此:
window.showModalDialog('test.htm', self, <optional options>);
这将确保将某些内容传递到窗口的论证中。
现在在您的登录页面上添加以下代码:
function parentExists()
{
var opener = window.dialogArguments;
return (opener == null)?false:true;
}
编辑:添加了有关模态框的信息