本文详解如何在JavaScript中消除window.close()在非弹出窗口中触发的确认提示框。针对IE6浏览器,通过设置window.opener为null实现静默关闭;针对IE7,则先调用window.open打开当前页面再执行close。代码示例展示了两种浏览器下的具体实现方式,帮助开发者解决兼容性问题。
window.close()关闭窗口时的提示框问题
使用window.close()脚本可以关闭当前窗口。如果该窗口是通过window.open打开的,执行close()会顺利关闭窗口;但如果是在非window.open打开的窗口中执行,浏览器会弹出一个确认提示框,如下图所示:

要在程序中消除这个提示框也很简单,不过在IE6和IE7稍有不同
IE6浏览器下的解决方案
1. IE6
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>IE6Close</title>
<script type="text/javascript">
function closeWin()
{
window.opener=null;
window.close();
}
</script>
</head>
<body>
<form id="form2" runat="server">
<div>
<input id="btnClose" type="button" value="close" onclick="closeWin()"/>
</div>
</form>
</body>
</html>
IE7浏览器下的解决方案
2.IE7
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>IE7Colse</title>
<script type="text/javascript">
function closeWin()
{
window.open('','_self','');
window.close();
}
</script>
</head>
<body>
<form id="form2" runat="server">
<div>
<input id="btnClose" type="button" value="close" onclick="closeWin()"/>
</div>
</form>
</body>
</html>
以上所述就是本文的全部内容了,希望大家能够喜欢。