Sie würden normalerweise etwas tun wie:
protected void btnClose_Click(object sender, EventArgs e)
{
ClientScript.RegisterStartupScript(typeof(Page), "closePage", "window.close();", true);
}
Beachten Sie jedoch, dass verschiedene Dinge in verschiedenen Szenarien passieren werden. Firefox lässt Sie kein Fenster schließen, das nicht von Ihnen geöffnet wurde (geöffnet mit window.open()
).
IE7 wird den Benutzer mit einem Dialogfeld "Diese Seite versucht zu schließen (Yes | No)" aufgefordert.
In jedem Fall sollten Sie bereit sein, mit dem Fenster umzugehen, das nicht immer schließt!
Ein Update für die 2 oben genannten Probleme zu verwenden:
protected void btnClose_Click(object sender, EventArgs e) {
ClientScript.RegisterStartupScript(typeof(Page), "closePage", "window.open('close.html', '_self', null);", true);
}
Und eine close.html erstellen:
<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>
Beachten Sie, dass close.html wenn das Fenster default.aspx wird umleiten schließt nach 2 Sekunden aus irgendeinem Grund nicht.
es macht ein Postback, und in dem zweiten Klick, IE fragt Bestätigung, um den Browser zu schließen. – Bachask8