最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

如何利用VUE監(jiān)聽(tīng)網(wǎng)頁(yè)關(guān)閉并執(zhí)行退出操作

 更新時(shí)間:2023年08月14日 10:34:55   作者:Gua_guagua  
這篇文章主要給大家介紹了關(guān)于如何利用VUE監(jiān)聽(tīng)網(wǎng)頁(yè)關(guān)閉并執(zhí)行退出操作的相關(guān)資料,因?yàn)轫?xiàng)目中需求,瀏覽器關(guān)閉時(shí)進(jìn)行一些操作處理,文中通過(guò)代碼示例介紹的非常詳細(xì),需要的朋友可以參考下

最近在項(xiàng)目中遇到了一個(gè)需求,需要監(jiān)聽(tīng)頁(yè)面關(guān)閉,在頁(yè)面關(guān)閉時(shí)彈出提示框,并在離開(kāi)頁(yè)面時(shí)觸發(fā)退出操作。因?yàn)槭怯肰UE進(jìn)行開(kāi)發(fā)的,所以先在mounted()中創(chuàng)建頁(yè)面關(guān)閉的監(jiān)聽(tīng)

window.addEventListener("beforeunload", (e) => this.beforeunloadHandler(e));
window.addEventListener("unload", (e) => this.unloadHandler(e));

第一個(gè)監(jiān)聽(tīng)的是頁(yè)面關(guān)閉之前,對(duì)應(yīng)的方法可以寫(xiě)做

// 頁(yè)面關(guān)閉之前,觸發(fā)提示框
    beforeunloadHandler(e) {
      if (e) {
        e = e || window.event;
        console.log(e);
        if (e) {
          e.returnValue = "關(guān)閉提示";
        }
        return "關(guān)閉提示";
      }
    },

第二個(gè)監(jiān)聽(tīng)的是頁(yè)面關(guān)閉的時(shí)候,這里面可以調(diào)用退出登錄的方法,但是記得要用同步調(diào)用的方法,axios默認(rèn)的是異步調(diào)用的方法

// 頁(yè)面關(guān)閉
    async unloadHandler(e) {
      // 退出登錄
      await this.handleGoLog();
    },

最后記得在destroyed()中,注銷(xiāo)監(jiān)聽(tīng)

destroyed() {
    window.removeEventListener("beforeunload", (e) =>
      this.beforeunloadHandler(e)
    );
    window.removeEventListener("unload", (e) => this.unloadHandler(e));
  },

補(bǔ)充知識(shí):vue實(shí)現(xiàn)關(guān)閉瀏覽器退出登錄功能(區(qū)別關(guān)閉和刷新)

項(xiàng)目場(chǎng)景:

在實(shí)現(xiàn)單點(diǎn)登錄時(shí),發(fā)現(xiàn)關(guān)閉瀏覽器后,并不會(huì)自動(dòng)退出登錄

解決方案:在app.vue中書(shū)寫(xiě)如下代碼

? data() {
? ? return {
? ? ? gap_time: 0,
? ? ? beforeUnload_time: 0,
? ? };
? },
? methods: {
? ? // 關(guān)閉窗口之前執(zhí)行
? ? beforeunloadHandler() {
? ? ? this.beforeUnload_time = new Date().getTime();
? ? },
? ? unloadHandler() {
? ? ? this.gap_time = new Date().getTime() - this.beforeUnload_time;
? ? ? //判斷是窗口關(guān)閉還是刷新 毫秒數(shù)判斷 網(wǎng)上大部分寫(xiě)的是5
? ? ? if (this.gap_time <= 10) {
? ? ? ? logOut() // 退出登錄接口 這里應(yīng)當(dāng)換為個(gè)人的登出方法
? ? ? } else {
? ? ? }
? ? },
? },
? destroyed() {
? ? // 移除監(jiān)聽(tīng)
? ? window.removeEventListener("beforeunload", () => this.beforeunloadHandler());
? ? window.removeEventListener("unload", () => this.unloadHandler());
? },
? mounted() {
? ? // 監(jiān)聽(tīng)瀏覽器關(guān)閉
? ? window.addEventListener("beforeunload", () => this.beforeunloadHandler());
? ? window.addEventListener("unload", () => this.unloadHandler());
? }

然后,再關(guān)閉瀏覽器后,就會(huì)自動(dòng)調(diào)用我們的退出登錄函數(shù)了。 

總結(jié) 

到此這篇關(guān)于如何利用VUE監(jiān)聽(tīng)網(wǎng)頁(yè)關(guān)閉并執(zhí)行退出操作的文章就介紹到這了,更多相關(guān)VUE監(jiān)聽(tīng)網(wǎng)頁(yè)關(guān)閉并退出內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 基于vue寫(xiě)一個(gè)全局Message組件的實(shí)現(xiàn)

    基于vue寫(xiě)一個(gè)全局Message組件的實(shí)現(xiàn)

    這篇文章主要介紹了基于vue寫(xiě)一個(gè)全局Message組件的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • Vue使用vue-pdf實(shí)現(xiàn)PDF文件預(yù)覽

    Vue使用vue-pdf實(shí)現(xiàn)PDF文件預(yù)覽

    這篇文章主要為大家詳細(xì)介紹了Vue如何使用vue-pdf實(shí)現(xiàn)PDF文件預(yù)覽的功能,文中的示例代碼講解詳細(xì),具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-03-03
  • vue3中使用百度地圖的簡(jiǎn)單步驟

    vue3中使用百度地圖的簡(jiǎn)單步驟

    最近項(xiàng)目要用到百度地圖api,好久沒(méi)用到地圖,就百度了一番,下面這篇文章主要給大家介紹了關(guān)于vue3中使用百度地圖的簡(jiǎn)單步驟,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-06-06
  • elementUI?el-table二次封裝的詳細(xì)實(shí)例

    elementUI?el-table二次封裝的詳細(xì)實(shí)例

    在項(xiàng)目中會(huì)多次使用表格展示數(shù)據(jù),不對(duì)這個(gè)table進(jìn)行二次封裝成我們自己想要的,重復(fù)的代碼量的工作會(huì)比較大,下面這篇文章主要給大家介紹了關(guān)于elementUI?el-table二次封裝的相關(guān)資料,需要的朋友可以參考下
    2023-03-03
  • vue事件修飾符和按鍵修飾符用法總結(jié)

    vue事件修飾符和按鍵修飾符用法總結(jié)

    本篇文章主要介紹了vue事件修飾符和按鍵修飾符用法總結(jié),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-07-07
  • element-ui中按需引入的實(shí)現(xiàn)

    element-ui中按需引入的實(shí)現(xiàn)

    這篇文章主要介紹了element-ui中按需引入的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • v-show和v-if的區(qū)別?及應(yīng)用場(chǎng)景

    v-show和v-if的區(qū)別?及應(yīng)用場(chǎng)景

    這篇文章主要介紹了v-show和v-if的區(qū)別及應(yīng)用場(chǎng)景,vue中v-show與?v-if的作用效果是相同的,都能控制元素在頁(yè)面是否顯示,但是也有一定的區(qū)別,下面文章梳理總結(jié)v-show和v-if的區(qū)別,需要的小伙伴可以參考一下
    2022-06-06
  • vue-calendar-component 封裝多日期選擇組件的實(shí)例代碼

    vue-calendar-component 封裝多日期選擇組件的實(shí)例代碼

    這篇文章主要介紹了vue-calendar-component 封裝多日期選擇組件,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-12-12
  • Vue實(shí)現(xiàn)父子組件之間的數(shù)據(jù)傳遞

    Vue實(shí)現(xiàn)父子組件之間的數(shù)據(jù)傳遞

    在前端開(kāi)發(fā)中,Vue.js 是一個(gè)非常流行的框架,因其易學(xué)易用而受到許多開(kāi)發(fā)者的青睞,其中,組件是 Vue 的核心概念之一,組件之間的數(shù)據(jù)傳遞是開(kāi)發(fā)中的常見(jiàn)需求,本文將探討如何在 Vue 中實(shí)現(xiàn)父子組件之間的數(shù)據(jù)傳遞,需要的朋友可以參考下
    2024-11-11
  • 使用VUE+iView+.Net Core上傳圖片的方法示例

    使用VUE+iView+.Net Core上傳圖片的方法示例

    這篇文章主要介紹了使用VUE+iView+.Net Core上傳圖片的方法示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01

最新評(píng)論

张家口市| 凤山县| 新巴尔虎右旗| 盱眙县| 方正县| 泸州市| 大洼县| 资溪县| 莫力| 怀柔区| 松阳县| 承德县| 洛浦县| 平武县| 阳新县| 天津市| 黄骅市| 陆丰市| 朝阳市| 上思县| 永川市| 金川县| 余干县| 镇原县| 葫芦岛市| 贵州省| 城市| 景洪市| 尤溪县| 宁乡县| 宁强县| 武邑县| 湖北省| 平昌县| 阿图什市| 布拖县| 泊头市| 巢湖市| 兴安县| 曲靖市| 贵德县|