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

vue項(xiàng)目使用js監(jiān)聽(tīng)瀏覽器關(guān)閉、刷新及后退事件的方法

 更新時(shí)間:2023年09月05日 11:43:15   作者:今天不要寫(xiě)bug  
這篇文章主要給大家介紹了關(guān)于vue項(xiàng)目使用js監(jiān)聽(tīng)瀏覽器關(guān)閉、刷新及后退事件的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用vue具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

一、業(yè)務(wù)場(chǎng)景:

在項(xiàng)目的某些頁(yè)面中,在執(zhí)行某些接口調(diào)用過(guò)程的時(shí)候,如果用戶(hù)選擇刷新、關(guān)閉或者后退瀏覽器。有可能會(huì)造成接口被阻斷,所以可能你會(huì)需要js監(jiān)聽(tīng)瀏覽器關(guān)閉、刷新、后退事件,在進(jìn)行這些操作的時(shí)候給個(gè)提示。如下圖:

二、實(shí)現(xiàn)方式

1、監(jiān)聽(tīng)瀏覽器關(guān)閉、刷新,給出提示

methods: {
       handleBeforeUnload(event) {
            // 兼容火狐的做法
            event.preventDefault()
            event.returnValue = ''
            // 展示提示消息 
            // (這里其實(shí)修改默認(rèn)提示語(yǔ)是不生效的,不過(guò)我的業(yè)務(wù)場(chǎng)景不需要修改默認(rèn)提示語(yǔ)
            // 我也沒(méi)找到能修改的方法,有大佬知道的話(huà)麻煩告知)
            const message = '確定要離開(kāi)嗎?'
            event.returnValue = message
            return message
        }
},
 mounted() {
        window.addEventListener('beforeunload', this.handleBeforeUnload)
        window.addEventListener('unload', this.handleBeforeUnload)
    },
    destroyed() {
        window.removeEventListener('beforeunload', this.handleBeforeUnload)
        window.removeEventListener('unload', this.handleBeforeUnload)
    },

2、監(jiān)聽(tīng)瀏覽器后退,給出提示

methods:{
      onPopState(e) {
                // 監(jiān)聽(tīng)到瀏覽器回退事件(這里提示用的confirm,是可以自定義的)
                if (confirm('離開(kāi)當(dāng)前頁(yè)面數(shù)據(jù)可能會(huì)丟失,您確定離開(kāi)當(dāng)前頁(yè)面嗎?')) {
                    // 點(diǎn)擊確定回退
                    window.removeEventListener('popstate', this.onPopState)
                    window.history.go(-1)
                } else {
                    // 點(diǎn)擊取消不回退
                    window.history.pushState(null, null, window.location.href)
                }
        },
      },
     mounted() {
	        // 添加 popstate 事件監(jiān)聽(tīng)
	        window.history.pushState(null, null, window.location.href);
	        window.addEventListener('popstate', this.onPopState);
       },
    beforeDestroy() {
        // 在組件銷(xiāo)毀前,移除 popstate 事件監(jiān)聽(tīng)
        window.removeEventListener('popstate', this.onPopState)
    }

總結(jié)

到此這篇關(guān)于vue項(xiàng)目使用js監(jiān)聽(tīng)瀏覽器關(guān)閉、刷新及后退事件的文章就介紹到這了,更多相關(guān)vue用js監(jiān)聽(tīng)瀏覽器內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Vue3中Watch、Watcheffect、Computed的使用和區(qū)別解析

    Vue3中Watch、Watcheffect、Computed的使用和區(qū)別解析

    Watch、Watcheffect、Computed各有優(yōu)劣,選擇使用哪種方法取決于應(yīng)用場(chǎng)景和需求,watch?適合副作用操作,watchEffect適合簡(jiǎn)單的自動(dòng)副作用管理,computed?適合聲明式的派生狀態(tài)計(jì)算,本文通過(guò)場(chǎng)景分析Vue3中Watch、Watcheffect、Computed的使用和區(qū)別,感興趣的朋友一起看看吧
    2024-07-07
  • Vue.js實(shí)現(xiàn)輸入框綁定的實(shí)例代碼

    Vue.js實(shí)現(xiàn)輸入框綁定的實(shí)例代碼

    這篇文章主要介紹了Vue.js實(shí)現(xiàn)輸入框綁定的實(shí)例代碼,需要的朋友可以參考下
    2017-08-08
  • 使用 Vite 打包 TypeScript 項(xiàng)目的實(shí)現(xiàn)步驟

    使用 Vite 打包 TypeScript 項(xiàng)目的實(shí)現(xiàn)步驟

    Vite 提供了一種簡(jiǎn)單而高效的方式來(lái)構(gòu)建和打包TypeScript項(xiàng)目,通過(guò)上面的步驟,你可以快速設(shè)置并運(yùn)行一個(gè) Vite + TypeScript 的開(kāi)發(fā)環(huán)境,下面就來(lái)詳細(xì)的了解一下
    2026-05-05
  • Vue新手指南之環(huán)境搭建及入門(mén)

    Vue新手指南之環(huán)境搭建及入門(mén)

    vue就是前端上的Java,前端上的C#,有個(gè)前端的虛擬DOM引擎,設(shè)計(jì)理念和Java/C#類(lèi)似,這篇文章主要給大家介紹了關(guān)于Vue新手指南之環(huán)境搭建及入門(mén)的相關(guān)資料,需要的朋友可以參考下
    2021-08-08
  • Vue的全局過(guò)濾器和私有過(guò)濾器的實(shí)現(xiàn)

    Vue的全局過(guò)濾器和私有過(guò)濾器的實(shí)現(xiàn)

    這篇文章主要介紹了Vue的全局過(guò)濾器和私有過(guò)濾器的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • Vue 2中ref屬性的使用方法及注意事項(xiàng)

    Vue 2中ref屬性的使用方法及注意事項(xiàng)

    這篇文章主要給大家介紹了關(guān)于Vue 2中ref屬性的使用方法及注意事項(xiàng)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面跟著小編一起來(lái)學(xué)習(xí)學(xué)習(xí)吧。
    2017-06-06
  • 解決element-ui?el-drawer抽屜el-dialog彈框關(guān)閉優(yōu)化demo

    解決element-ui?el-drawer抽屜el-dialog彈框關(guān)閉優(yōu)化demo

    這篇文章主要為大家介紹了解決element-ui?el-drawer抽屜el-dialog彈框關(guān)閉優(yōu)化demo,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪<BR>
    2023-06-06
  • vue el-form-item如何添加icon和tooltip

    vue el-form-item如何添加icon和tooltip

    這篇文章主要介紹了vue el-form-item如何添加icon和tooltip問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • 基于 vue-skeleton-webpack-plugin 的骨架屏實(shí)戰(zhàn)

    基于 vue-skeleton-webpack-plugin 的骨架屏實(shí)戰(zhàn)

    這篇文章主要介紹了基于 vue-skeleton-webpack-plugin 的骨架屏實(shí)戰(zhàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • Vue實(shí)現(xiàn)無(wú)縫輪播效果

    Vue實(shí)現(xiàn)無(wú)縫輪播效果

    這篇文章主要為大家詳細(xì)介紹了Vue實(shí)現(xiàn)無(wú)縫輪播效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-04-04

最新評(píng)論

花莲市| 淅川县| 刚察县| 淮滨县| 习水县| 盐津县| 耒阳市| 阳朔县| 应用必备| 永定县| 武平县| 开封县| 祁连县| 大邑县| 原阳县| 七台河市| 安庆市| 麻城市| 德格县| 安丘市| 迁西县| 固原市| 浦城县| 辛集市| 黄陵县| 揭阳市| 平山县| 丽江市| 古交市| 额济纳旗| 兴和县| 深水埗区| 靖安县| 昌宁县| 灌阳县| 定兴县| 从江县| 长寿区| 皮山县| 浦江县| 康平县|