关闭已重定向的弹出窗口

时间:2011-08-29 15:13:08

标签: javascript .net asp.net

我在使用JavaScript

在我的页面上关闭弹出窗口时遇到问题

我已经能够关闭其他弹出窗口,但是当我最终重定向弹出窗口时,我想我失去了一些东西。例如,在主窗口中,我选择一个项目,然后弹出窗口显示信息。接下来,我点击编辑,将响应重定向到编辑页面。在这里,我做了我的更改并点击提交。提交后,我希望它能够关闭,但我似乎无法做到这一点。

对于以前的弹出窗口,我会使用

ClientScript.RegisterStartupScript(this.GetType(), "CLOSE", "CloseAndRefresh();", true);

要调用我的.aspx文件中的javascript。这是:

function CloseAndRefresh() {
    parent.location.reload(true);
    parent.ClosePopup();
}

我使用以下代码生成了弹出窗口:

editButton.OnClientClick = (popupWindow.GetTargetPopupCode("MYURL"));

然而这不再适用了。我认为由于我对原始弹出窗口的重定向,它将一切都抛弃了。知道我需要修理什么吗?

编辑:

我终于明白了javascript实际上已经被调用了。

我已经尝试过这些功能而且没有一个功能:

window.close();
self.close();
parent.ClosePopUp();

ww = window.open(window.location, "_self");
ww.close();

谢谢!

1 个答案:

答案 0 :(得分:0)

好的,你可能正在紧密地做事。添加超时可能会有所帮助。这是我用来刷新父级并关闭弹出窗口的代码。对此进行调整,看看是否有帮助:

refreshParent = function(){
    window.opener.reload();
    setTimeout(function(){ self.focus(); self.close(); }, 2000);           
}    

尝试使用:

编辑:根据W3规范从location.reload方法中删除了true参数:

function CloseAndRefresh() { 
    parent.location.reload(); 
    self.close();
    return true;
} 

请参阅:http://www.w3schools.com/jsref/met_loc_reload.asp

编辑:不要将其添加为启动脚本,只需将其添加到提交按钮的ClientOnClick,如下所示:

<asp:Button ID="btnSubmit" runat="server" Text="Submit" OnClientClick="return CloseAndRefresh();" OnClick="..." />