0

我有一个弹出窗口,它基本上将文本字段输入用于在我的父表单/页面中的网格视图(asp)中输入,我回发回父级,以便反映弹出窗口中新添加的数据在父页面中。

虽然这个流程在 Chrome 或 firefox 中运行顺利,但当我在 IE 中使用相同的逻辑时,它会出现一个奇怪的问题,

为了解释这个问题,让我给你我的代码背景,这是我从父页面打开弹出窗口的方式:

 <asp:Button ID="AddBtn" runat="server" Visible="false" OnClientClick="javascript:OpenChildWindow();" Text="Add"/> 



   function OpenChildWindow()
    {
        //open a new dialog window
        var sFeatures="dialogHeight: 500px;";
        sFeatures += "dialogWidth: 800px;";
        sFeatures += "center: yes;";
        sFeatures += "edge: sunken;";
        sFeatures += "scroll: no;";
        sFeatures += "status: yes;";
        sFeatures += "resizeable: no;";
        var url = 'TransNewEntry.aspx?SomeValue=12345';

        entryWindow=window.showModalDialog(url, 'TransNewEntry', sFeatures);            

    }

这是我在用户单击弹出窗口中的保存按钮后尝试关闭它的方式:

  protected void saveRow(object sender, EventArgs e)
    {
       {/*some code to insert/modify datarow*/
        }
        Response.Write("<script type='text/javascript'> window.open('','_self',''); window.close();</script>");
    }

所以现在发生的事情是当我单击保存按钮(在弹出窗口中)而不是关闭当前窗口时,它会打开一个新窗口(与已打开的弹出窗口相同)并关闭新打开的窗口。

请注意,我使用了“window.open('','_self','');” 如果我只使用“window.close”,则在“window.close”之前 IE 会抛出一个关于我是否应该关闭新打开的弹出窗口的确认框,但无论如何它都会打开重复的弹出窗口。

4

0 回答 0