chrome浏览器onunload方法无法执行window.location.href

记录用户不正常退出,如关闭浏览器的时候,执行onunload方法,跳回后台记录用户已经退出的信息,在ie上可以正常跳转,但在Firefox和chrome上却无法跳转。

测试后发现以下方法可以实现,支持firefox、chrome、ie、360急速模式:

 1 <script type="text/javascript">
 2     window.onbeforeunload = function(){
 3         var res = false;
 4         $(function () {
 5             $.ajax({
 6                 url: '@url',
 7                 type: 'post',
 8                 success: function (data) {
 9                     res = true;
10                 }
11             });
12             return res;
13         });
14     };
15     window.onunload = function(){
16         return window.location.href = '@url';
17     };
18 </script>


<script type="text/javascript">
window.onbeforeunload = function(){
var res = false;
$(function () {
$.ajax({
url: '@url',
type: 'post',
success: function (data) {
res = true;
}
});
return res;
});
};
window.onunload = function(){
return window.location.href = '@url';
};
</script>

问题:
1.不支持360兼容模式
2.无法区分刷新和关闭,刷新的时候也会直接退出

不知道有没有更好的方法,欢迎留言讨论

done!

原文地址:https://www.cnblogs.com/zqifa/p/js-onunload.html