本文总结了在JavaScript中关闭当前浏览器窗口的多种实现方式。包括无需提示直接关闭、通过confirm自定义确认弹窗关闭、利用onbeforeunload事件拦截浏览器关闭按钮,以及在按钮点击事件中结合confirm与location.href或history.back进行条件跳转或返回。内容涵盖HTML链接、按钮点击及服务端Response.Write生成的脚本示例,旨在解决不同场景下的页面关闭需求。
无需提示直接关闭页面的方法
1. 无需任何提示直接关闭当前窗口的方法
具体代码实现如下:
<a href="javascript:window.opener=null;window.open('','_self');window.close();">关闭</a>自定义确认提示关闭页面的实现
2. 带有自定义确认提示的关闭方式
相关脚本代码如下:
<script language="javascript">
// 此脚本兼容 IE6 和 IE7 浏览器
function custom_close(){
if
(confirm("您确定要关闭本页吗?")){
window.opener=null;
window.open('','_self');
window.close();
}
else{}
}
</script>
<input id="btnClose" type="button" value="关闭本页" onClick="custom_close()" />直接关闭及按钮触发的关闭技巧
3. 直接关闭当前页面的另一种写法
代码示例如下:
<a href="javascript:window.opener=null;window.close();">关闭</a>。若需通过按钮触发,则可使用如下服务端代码:
Response.Write("<script language=\"javascript\">window.opener=null;window.close();</script>");采用上述方式,在点击关闭时将不会弹出浏览器默认的“当前窗口正试图关闭”的确认对话框。
拦截浏览器关闭按钮的确认对话框
那么,如何实现当用户点击浏览器窗口右上角的最大化、最小化或关闭按钮时,也弹出自定义的关闭确认对话框呢?可以通过以下方式实现:
具体代码如下:
<body onbeforeunload="return '真的要关闭此窗口吗?'">这样设置后,当用户点击关闭按钮时,会执行 onbeforeunload 函数并弹出“真的要关闭此窗口吗?”的确认框。若用户点击“取消”,则返回假值,页面不关闭;若点击“确定”,则返回真值,页面正常关闭。
按钮点击时的条件跳转与返回逻辑
此外,如何实现在点击特定按钮时弹出确定/取消对话框?若用户点击取消,则不执行后续代码;若点击确定,则继续执行后续逻辑?
可以在按钮的单击事件中编写如下代码:
具体实现代码如下:
Response.Write("<script language=\javascript\">" + "if(confirm(\"确定吗?\"))"+"{window.location.href='default.aspx';}"+"else{history.back();}"+"</script>");该逻辑的含义是:首先调用 confirm 函数弹出包含确定和取消按钮的对话框。如果用户点击确定,则返回真值,执行 window.location.href='default.aspx' 跳转至 default.aspx 页面;如果用户点击取消,则返回假值,执行 history.back() 返回到之前的页面。