close事件 vue_vue 監聽瀏覽器關閉事件


用vue做的項目,有個需求就是關閉瀏覽器的時候,需要往后台提交有個接口,來監聽這個賬號有沒有下線。

網上找了很多種方法,一直沒有實現。

主要困惑點:

1、瀏覽器關閉是事件,是什么

onbeforeunload、onunload  又是各種百度,

window.addEventListener( ‘beforeunload’,e =>(

執行…

) )

mounted () {

window.addEventListener('beforeunload', e => {

window.localStorage.removeItem('titleName')

});

},

mounted () {

window.addEventListener( 'beforeunload', e => this.set() );

},

methods:{

set(){

console.log('我是要調用的函數')

}

}

把請求接口放到 set中,關閉瀏覽器的時候是可以請求接口了,但是,刷新時候也請求,不符合要求。。。。然后又是各種百度

2、怎么區分瀏覽器刷新與關閉(網上找的方法,不知道出處是哪里,)

var _beforeUnload_time = 0,_gap_time=0;

window.οnunlοad=function(){

_gap_time=new Date().getTime()-_beforeUnload_time;

if(_gap_time<=5){

//瀏覽器關閉

$.ajax({

url:'/movecheck/logout',

// dataType:"JSON",

cache:false,

type:'post',

async:false,

success:function(dt){

//  console.log(dt)

},

error:function(dt){

}

})

}

}

window.οnbefοreunlοad=function(){

_beforeUnload_time=new Date().getTime();

}

});

確實,這個方法是可以區分瀏覽器是刷新還是 關閉,所以我就把上面的方法里面的ajax方法改成 axios,結果不如意,根本不會執行axios接口,ajax中有個配置async:false,發現axios中沒有,又各種百度,沒有找到解決方法。

突然靈機一動,第一個是 能執行接口,但是區分不了刷新與關閉,第二個能區分刷新與關閉,執行不了接口,那為何不把這兩個結合起來,哈哈哈哈。。。。。恩,問題解決了(機智如我)

addEventListener,好好看看這個事件,不說了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM