第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

如何機(jī)智判斷頁(yè)面是刷新還是關(guān)閉,背景:vue項(xiàng)目,需求:關(guān)閉頁(yè)面,下次直接跳到登陸頁(yè)

標(biāo)簽:
Vue.js

最近项目有这么个需求:要在关闭当前系统的窗口的时候,退出登录,

因为如果不退出登录可能存在安全风险,其实我想说,电脑没事别借给别人活着离开工位记得一定要锁屏,其实我们设置了cookie失效时间的,过了一段时间会自动清空cookie。

经过我查资料,自身尝试网上的各种方法,发现都有问题。

总结这一路的尝试:

 

一、页面加载时只执行 ,页面关闭时只执行onunload,页面刷新时先执行onbeforeunload,然后onunload,最后。

经过验证我得出的结论是:

(1)对于ie,谷歌,360:

//页面加载时只执行//页面刷新时,刷新之前执行onbeforeunload事件,在新页面即将替换旧页面时onunload事件,最后事件。//页面关闭时,先onbeforeunload事件,再onunload事件。

(2)对于火狐:

//页面刷新时,只执行onunload;页面关闭时,只执行onbeforeunload事件那么回归正题,到底怎样判断浏览器是关闭还是刷新?我按照网上的各种说法实验千百遍,都未成功,

 

二、机智的判断页面刷新还是关闭

关键点:刷新完成之后会执行方法,根据session存标志变量来清空cookie

我的思路是:刷新和关闭,无论哪个浏览器都会执行onunload方法或者onbeforeunload方法,其实我们在这两个方法里是判断不了的,但是在刷新之后会再一次执行方法,所以我在这两个方法里将一个标志位变量放在session里。然后在方法执行的时候判断session里是否有这个变量,有的话,说明是刷新,不然就是关闭。

复制代码

import Cookies from 'js-cookie'/*区分关闭和刷新,关闭退出登录 start*/window. = function(){  if(!window.sessionStorage["tempFlag"]){
    Cookies.remove('userId')
    Cookies.remove('userName')
    location.reload();   //不能省,强制跳到登陆页
  }else{
    window.sessionStorage.removeItem("tempFlag");
  }
}
window.onunload = function (){
  window.sessionStorage["tempFlag"] = true;
}
window.onbeforeunload = function (){
  window.sessionStorage["tempFlag"] = true;
}

复制代码

 

 

目前项目中使用时可行的,不足的地方:一个系统的多个页面同时打开,关掉其中一个页面也会清空cookie,重新登录

谁让项目登录用的是cookie存,如果换成session存登录信息就不一样了

原文出处:https://www.cnblogs.com/chengxs/p/9605702.html

點(diǎn)擊查看更多內(nèi)容
2人點(diǎn)贊

若覺得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消