Cierre una ventana del navegador de una aplicación ASP.NET y AJAX

votos
1

¿Cuál es la mejor manera de cerrar una ventana del navegador de una aplicación AJAX ASP.NET después de que se haya ejecutado el servidor?

Encontré esta solución , pero parece un poco compleja para lo que quiero lograr. ¿O es esta la mejor manera de llevar a cabo mi tarea?

ACTUALIZACIÓN: tengo que cerrar la ventana después de presionar el botón

ACTUALIZACIÓN 1: Probé la solución de la otra pregunta SO, y no funcionó para mí.

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

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

Usé el siguiente código en mi página, pero aparece la ventana del módulo La página web que está viendo está intentando cerrar la ventana.

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

¿Alguna manera de prevenir esto?

Publicado el 10/12/2008 a las 00:49
fuente por usuario
En otros idiomas...                            


4 respuestas

votos
1

En realidad se puede hacer esto colocando el siguiente código en su evento de clic de botón.

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!";                
    }
}
Respondida el 10/09/2010 a las 15:36
fuente por usuario

votos
1

No, no hay forma de cerrar una ventana del navegador sin el consentimiento del usuario. Puede cerrar sesión en su aplicación, pero no puede cerrar a la fuerza la ventana del navegador.

Respondida el 10/12/2008 a las 03:23
fuente por usuario

votos
0

Para evitar el aviso de script, puede utilizar lo siguiente:

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

Asi que:

if (ScriptManager.GetCurrent(this).IsInAsyncPostBack)
        ScriptManager.RegisterStartupScript(upApproveRequest, typeof(string), "closeWindow", "window.open('', '_self', '');window.close();", true);
Respondida el 14/02/2012 a las 20:43
fuente por usuario

votos
-2

Eso es practicamente todo. Puedes simplemente usarScriptManager.RegisterStartupScript(...)

Respondida el 10/12/2008 a las 00:53
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more