javascript - Close a browser window of an ASP.NET and AJAX application - Stack Overflow

What is the best way to close a browser window of an AJAX ASP.NET application after the server-side has

What is the best way to close a browser window of an AJAX ASP.NET application after the server-side has been executed.

I found this solution, but it seems a little plex for what I want to acplish. Or is this the best way to acplish my task.

UPDATE: I have to close the window after the button is pressed

UPDATE 1: I tried the solution from the other SO question, and it did not work for me.

<asp:Button ID="btnMyButton" runat="server" onClick="btnMyButton_Click" />

protected void btnMyButton_Click(object sender, EventArgs e)
{
}

I used the following code in my page, but the "The webpage you are viewing is trying to close the windows" module window pops up.

if (ScriptManager.GetCurrent(this).IsInAsyncPostBack)
            ScriptManager.RegisterStartupScript(upApproveRequest, typeof(string), "closeWindow", "window.close();", true);

Any way to prevent this?

What is the best way to close a browser window of an AJAX ASP.NET application after the server-side has been executed.

I found this solution, but it seems a little plex for what I want to acplish. Or is this the best way to acplish my task.

UPDATE: I have to close the window after the button is pressed

UPDATE 1: I tried the solution from the other SO question, and it did not work for me.

<asp:Button ID="btnMyButton" runat="server" onClick="btnMyButton_Click" />

protected void btnMyButton_Click(object sender, EventArgs e)
{
}

I used the following code in my page, but the "The webpage you are viewing is trying to close the windows" module window pops up.

if (ScriptManager.GetCurrent(this).IsInAsyncPostBack)
            ScriptManager.RegisterStartupScript(upApproveRequest, typeof(string), "closeWindow", "window.close();", true);

Any way to prevent this?

Share Improve this question edited May 23, 2017 at 10:33 CommunityBot 11 silver badge asked Dec 9, 2008 at 23:49 Michael KniskernMichael Kniskern 25.3k70 gold badges169 silver badges233 bronze badges 1
  • @Gortok - I came up a solution to sets the OnClientClick event with the JavaScript function of the button that closes the child window when it is opened from the parent page. – Michael Kniskern Commented Jul 23, 2009 at 21:02
Add a ment  | 

4 Answers 4

Reset to default 2

Actually you can do this by placing the following code in your button click event.

protected void btnMyButton_Click(object sender, ImageClickEventArgs e)
{
    // Update database
    bool success = Presenter.DoDatabaseStuff();

    if (success)
    {
        // Close window after success
        const string javaScript = "<script language=javascript>window.top.close();</script>";
        if (!ClientScript.IsStartupScriptRegistered("CloseMyWindow"))
        {
            ClientScript.RegisterStartupScript(GetType(),"CloseMyWindow", javaScript);
        }
    }
    else
    {
        // Display failure result
        result_msg_area.Visible = true;
        lblError.Text = "An error occurred!";                
    }
}

No, there is no way to close a browser window without the user's consent. You can log them out of their application, but you can't forcibly close the browser window.

To avoid the script warning, you can use this:

window.open('', '_self', '');window.close();

So:

if (ScriptManager.GetCurrent(this).IsInAsyncPostBack)
        ScriptManager.RegisterStartupScript(upApproveRequest, typeof(string), "closeWindow", "window.open('', '_self', '');window.close();", true);

That's pretty much it. You can just use ScriptManager.RegisterStartupScript(...)

发布者:admin,转转请注明出处:http://www.yc00.com/questions/1745365845a4624575.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信