js如何监听窗口的关闭?

beforeunload和unload对chrome没用。。。公司又要求兼容chrome,折腾了两天了,都快崩溃了。。。... beforeunload 和 unload 对chrome没用。。。公司又要求兼容chrome,折腾了两天了,都快崩溃了。。。 展开
 我来答
马后雷鼓下扬州5058
推荐于2018-02-27 · TA获得超过4321个赞
知道小有建树答主
回答量:693
采纳率:33%
帮助的人:806万
展开全部

下面的代码兼容除 Opera 之外的任何浏览器。Opera 到现在最高版本为止对 onunload 的支持都是不完整的,对于 unbeforeunload 更是根本不支持。


<script type="text/javascript">
window.onbeforeunload = function(e) {
    e = e || window.event;
    var msg = "您确定要离开此页面吗?";
     
    // IE
    e.cancelBubble = true;
    e.returnValue = msg;
     
    // Firefox
    if(e.stopPropagation) {
        e.stopPropagation();
        e.preventDefault();
    }
    
    // Chrome / Safari
    return msg;
};
</script>
更多追问追答
追问
如果是onunload呢? 现在在做的东西 是考试界面,进入考试后,刷新,关闭都进行提交,我想的是onunload方法,但是 chrome上好像没效果。。。还是可以用别的方法代替的?求指教。。。
追答
你是想不出现任何提示直接提交表单吧?
据我所知,无论是使用 onunload 和 onbeforeunload 都无法做到兼容全部浏览器。

windown.onbefloreunload = function() {
document.forms["test"].submit();
};

这段代码在 Chrome 中可以,但 Firefox, Safari 中都是无效的。就算可行,你也不能完全保证表单被完全提交,因为浏览器已经关闭,和服务器的连接可能还没建立就已经中断,也不能保证在提交失败的情况下给出提示。

所以我的建议还是手动提交,然后在 onbeforeunload 中添加一个变量来判断表单是否已经被提交,如果没有,刷新或离开时提示,反之直接退出。
全网天下霸屏
推荐于2016-09-27 · 知道合伙人互联网行家
全网天下霸屏
知道合伙人互联网行家
采纳数:5592 获赞数:33347
专注全网营销,品牌推广,营销推广,网站运营,自媒体运营;如果求助没有及时回复,欢迎私信。

向TA提问 私信TA
展开全部

js关闭浏览器窗口

js关闭浏览器窗口,不弹出提示框。支持ie6+,火狐,谷歌等浏览器。
<html>
<head />
<body>
<script type="text/javascript">
function closeWin(){
    window.opener=null;//window的opener对象置为null
    window.open('','_self','');//本页面刷新
    window.close();//窗口关闭
}
</script>
<!--点击事件触发-->
<a onclick="closeWin()" href="#">logout</a>
</body>
</html>


已赞过 已踩过<
你对这个回答的评价是?
评论 收起
诚者装饰
2013-05-14 · TA获得超过117个赞
知道答主
回答量:204
采纳率:100%
帮助的人:93.1万
展开全部
close 事件
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式