在javascript中检测模态对话框

时间:2009-05-27 19:54:27

标签: javascript modal-dialog

有没有办法检测在模态对话框中加载页面的时间?比如当你调用window.showModalDialog()时。

一点背景:我正试图解决模式对话框中出现的登录页面的表单身份验证问题,以及用户登录时网站的其余部分。

有什么想法吗?

1 个答案:

答案 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;
}

编辑:添加了有关模态框的信息