js如何监听窗口的关闭?
beforeunload和unload对chrome没用。。。公司又要求兼容chrome,折腾了两天了,都快崩溃了。。。...
beforeunload 和 unload 对chrome没用。。。公司又要求兼容chrome,折腾了两天了,都快崩溃了。。。
展开
3个回答
展开全部
下面的代码兼容除 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 · 知道合伙人互联网行家
关注
展开全部
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>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
close 事件
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询