代码之家  ›  专栏  ›  技术社区  ›  phreeskier

弹出窗口将不关闭

  •  0
  • phreeskier  · 技术社区  · 14 年前

    我想关闭一个错误页面的弹出窗口。过程是:

    1. 提交表格
    2. 如果表单提交后抛出错误,则查看页面(而不是弹出窗口)重定向到错误页面

    此时,弹出窗口应关闭。

    考虑到弹出窗口的打开时间和表单的提交时间,没有一种简单的方法可以等待并查看是否抛出错误,然后决定是否打开弹出窗口。我正在编程的特定错误是在弹出窗口打开后抛出的,因此我认为应该从错误页关闭弹出窗口。这些步骤已经设置好了,所以我正在为当前的体系结构寻找一个解决方案。

    var PopupWnd = null;
    function ShowPopup(){
     PopupWnd = window.open('Popup.aspx','PopupWnd','');
    }
    function HidePopup(){
     if(PopupWnd != null){
      if(!PopupWnd.closed){
       PopupWnd.close();
      }
     }
    }
    

    HidePopup() 功能,不是吗 PopupWnd 如果 ShowPopup() 弹出窗口 HidePopup()


    附加说明:

    string script = "<script>HidePopup();</script>";
    ClientScript.RegisterClientScriptBlock(GetType(), "UploadErrorScript", script);
    

    为了进行健全性检查,我输入了警报以确保HidePopup函数是从我的codebhind调用的,并且popuwnd对象在这个函数中仍然设置为null。

    1 回复  |  直到 5 年前
        1
  •  1
  •   CogitoErgoSum    14 年前

    你的名字可能有冲突。您有一个变量popuwnd和窗口的名称popuwnd。

    var PopupWnd = null; function
    ShowPopup(){
         PopupWnd = window.open('Popup.aspx','PopupWindow','');
    } 
    function HidePopup(){
        if(PopupWnd != null){
            if(!PopupWnd.closed){
                PopupWnd.close();
            }
        }
     }
    

    http://www.infimum.dk/HTML/JSwindows.html 更深入地了解如何使用javascript进行窗口操作。

    在这种情况下,我还建议逐行测试,并做一些事情,比如抛出警报,即在弹出窗口后执行警报!=空,查看它是否达到该部分。地狱,在HidePopup函数的开始处做一个警告,看看PopUpnd的值是什么。。。