一. 思路
onunload,onbeforeunload都是在刷新或关闭时调用,区别在于onbeforeunload在onunload之前执行,所以利用它们的时间差来判断是关闭还是刷新,若时间差小于等于5秒,则代表是关闭窗口,大于5秒,一般是在刷新窗口。所以在小于等于5秒时,将sessionStorage清空,则token随之清空
二.代码
// 点击窗口的叉,让其清空token
let beginTime = 0;//开始时间
let differTime = 0;//时间差
window.onunload = function (){
differTime = new Date().getTime() - beginTime;
if(differTime <= 5) sessionStorage.clear();
};
window.onbeforeunload = function (){
beginTime = new Date().getTime();
};