【发布时间】:2010-07-22 18:24:12
【问题描述】:
我想从错误页面关闭弹出窗口。流程是:
- 提交表单
- 在提交表单时,查看打开的弹出窗口
- 如果表单提交后抛出错误,则查看页面(不是弹窗)重定向到错误页面
此时,弹出窗口应该关闭。
鉴于弹出窗口的打开时间和表单的提交,没有一个简单的方法可以等待,看看是否抛出错误,然后决定是否打开弹出窗口。我正在编程的特定错误是在打开弹出窗口后引发的,所以我认为应该从错误页面关闭弹出窗口。步骤已设置到位,因此我正在为当前架构寻找解决方案。
在错误页面上,我尝试从包含负责打开弹出窗口的函数的同一脚本文件中调用一个函数。相关代码为:
var PopupWnd = null;
function ShowPopup(){
PopupWnd = window.open('Popup.aspx','PopupWnd','');
}
function HidePopup(){
if(PopupWnd != null){
if(!PopupWnd.closed){
PopupWnd.close();
}
}
}
从HidePopup()函数中,如果ShowPopup()函数早先执行,PopupWnd对象不应该不等于null吗?是否与范围界定问题或事件时间安排有关?当我想关闭HidePopup()函数中的弹出窗口时,如何使PopupWnd对象值保持不变,使其不等于null?
附加说明:
在确认名称没有冲突后,我想知道我从错误 aspx 页面后面代码的 Page_Load 事件调用 HidePopup 函数是否重要。代码是:
string script = "<script>HidePopup();</script>";
ClientScript.RegisterClientScriptBlock(GetType(), "UploadErrorScript", script);
为了进行完整性检查,我输入了警报以确保从我的代码隐藏中调用了 HidePopup 函数,并且在此函数中 PopupWnd 对象仍设置为 null。
【问题讨论】:
标签: javascript c# asp.net dom-events