Normalmente haría algo como:
protected void btnClose_Click(object sender, EventArgs e)
{
ClientScript.RegisterStartupScript(typeof(Page), "closePage", "window.close();", true);
}
Sin embargo, tenga en cuenta que diferentes cosas sucederán en diferentes escenarios. Firefox no le permitirá cerrar una ventana que no haya abierto (abierta con window.open()
).
IE7 indicará al usuario con un cuadro de diálogo "Esta página está intentando cerrar (Sí | No)".
En cualquier caso, ¡debe estar preparado para lidiar con la ventana que no siempre cierra!
Una solución para el 2 por encima de los problemas es usar:
protected void btnClose_Click(object sender, EventArgs e) {
ClientScript.RegisterStartupScript(typeof(Page), "closePage", "window.open('close.html', '_self', null);", true);
}
y crear un close.html:
<html><head>
<title></title>
<script language="javascript" type="text/javascript">
var redirectTimerId = 0;
function closeWindow()
{
window.opener = top;
redirectTimerId = window.setTimeout('redirect()', 2000);
window.close();
}
function stopRedirect()
{
window.clearTimeout(redirectTimerId);
}
function redirect()
{
window.location = 'default.aspx';
}
</script>
</head>
<body onload="closeWindow()" onunload="stopRedirect()" style="">
<center><h1>Please Wait...</h1></center>
</body></html>
Tenga en cuenta que close.html redireccionará a default.aspx si la ventana no se cierra después de 2 segundos por alguna razón.
hace una devolución de datos, y en el segundo clic, IE pide confirmación para cerrar el navegador. – Bachask8