Bạn thường làm điều gì đó như:
protected void btnClose_Click(object sender, EventArgs e)
{
ClientScript.RegisterStartupScript(typeof(Page), "closePage", "window.close();", true);
}
Tuy nhiên, hãy nhớ rằng những điều khác nhau sẽ xảy ra trong các cảnh tượng khác nhau. Firefox sẽ không cho phép bạn đóng cửa sổ không do bạn mở (mở bằng window.open()
).
IE7 sẽ nhắc người dùng bằng hộp thoại "Trang này đang cố gắng đóng (Có | Không)".
Trong mọi trường hợp, bạn nên chuẩn bị để đối phó với cửa sổ không phải lúc nào cũng đóng!
Một sửa chữa cho 2 ở trên vấn đề là sử dụng:
protected void btnClose_Click(object sender, EventArgs e) {
ClientScript.RegisterStartupScript(typeof(Page), "closePage", "window.open('close.html', '_self', null);", true);
}
Và tạo ra một 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>
Lưu ý rằng close.html sẽ chuyển hướng đến default.aspx nếu cửa sổ không đóng sau 2 giây vì lý do nào đó.
nó làm cho một postback, và trong lần nhấp chuột thứ hai, IE yêu cầu xác nhận để đóng trình duyệt. – Bachask8