window.close() 不出现提示“是否要关闭本窗口”

本文介绍两种方法来防止浏览器窗口关闭时出现确认对话框。第一种方法是在JavaScript中使用window.opener=null; 和 window.close();。第二种方法是利用HTML object标签配合ExecWB方法实现按钮关闭窗口的功能。

在window.close();前加上

window.opener=null;

就不会提示’是否要关闭本窗口’了!

如:
<script language="javascript">
    window.open('表头不动(纯CSS).htm','','status=no');
    window.opener=null;
    window.close();
</script>

方法2:
<object id="WebBrowser" width=0 height=0 classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2">
</object>
<input type="button" name="Button" value="关闭窗口" onClick="document.all.WebBrowser.ExecWB(45,1)">

 

 
同浏览器中,`window.close()` 无法关闭指定窗口的问题有多种解决方案: - **通用情况**:`window.close()` 和 `self.close()` 关闭非弹出窗口(`opener=null` 及非 `window.open()` 打开的窗口)。有尝试过的方法如 `self.opener=null; self.close();` 以及 `window.location.href="about:blank"; window.close();`,但前者与初始方法类似,后者以打开新空白页为代价,且都会提示 `Scripts may close only the windows that were opened by it` 警告信息 [^1]。 - **谷歌和火狐浏览器**:`window.close()` 会出现无法退出页面的情况,有通过偷梁换柱对页面进行跳转的方法。如定义 `exit` 函数,根据浏览器类型进行同处理,当浏览器名为 `Netscape` 时,将页面跳转到 `../tLoginAdmin.jsp`;当浏览器名为 `Microsoft Internet Explorer` 时,执行 `window.parent.opener("whocares"); window.parent.close();` [^2]。 - **综合多种浏览器情况**:定义 `f_close` 函数,先判断是否在微信环境,如果是则调用 `WeixinJSBridge.call('closeWindow')` 关闭窗口;若是,根据同浏览器类型处理。对于 IE 浏览器,若为 IE 6.0,执行 `window.opener = null; window.close();`,其他版本的 IE 执行 `window.open('', '_top'); window.top.close();`;对于 Firefox 浏览器,将页面跳转到 `about:blank`;其他浏览器执行 `window.opener = null; window.open('', '_self', ''); window.close();` [^3]。 ```javascript // 引用[3]中的代码示例 function f_close(){ if(typeof(WeixinJSBridge)!="undefined"){ WeixinJSBridge.call('closeWindow'); }else{ if(navigator.userAgent.indexOf("MSIE") > 0) { if (navigator.userAgent.indexOf("MSIE 6.0") >0) { window.opener = null; window.close(); } else { window.open('', '_top'); window.top.close(); } } else if(navigator.userAgent.indexOf("Firefox") > 0) { window.location.href = 'about:blank '; } else { window.opener = null; window.open('', '_self', ''); window.close(); } } } ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值