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!
如果觉得这文章还算用心,请劳驾点击右下角的推荐,这是对我们这些做开源分享的最大的肯定,谢谢。
作者:zqifa
出处:https://www.cnblogs.com/zqifa/
欢迎访问新博客地址:https://www.l1mn.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。