精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

如何讓用戶選擇是否離開當前頁面?

開發 前端
如果用戶填寫了很多數據此時,不小心點了其他a標簽或者關閉了瀏覽器,不做判斷,那么用戶數據直接丟了。

為什么要讓用戶選擇是否離開頁面

  •  如果用戶填寫了很多數據此時
  •  不小心點了其他a標簽或者關閉了瀏覽器,不做判斷,那么用戶數據直接丟了

梳理需求

  •  離開頁面方式,被location.href,a標簽,關閉瀏覽器或者當前tab頁等...
  •  需要判斷數據是否跟初始化時一致(用戶有無填寫表單...)
  •  用戶選擇離開就要繼續邏輯,反之則不離開

正式開始

  •     首先要知道一個事件:onbeforeunload,MDN的說明是:當瀏覽器窗口關閉或者刷新時,會觸發beforeunload事件。當前頁面不會直接關閉,可以點擊確定按鈕關閉或刷新,也可以取消關閉或刷新。
  •    HTML規范指出在此事件中調用window.alert(),window.confirm()以及window.prompt()方法,可能會失效

實踐一下

  •  在微信公眾號編輯器界面,輸入一部分內容后,點擊關閉tab頁,此時出現彈窗   

  • 刪除所有內容后,回歸初始進入的數據,點擊關閉tab頁,直接就關閉了,沒有出現提示   

  • 看插件顯示,這個編輯器界面沒有使用react和vue,應該是jq吧,測試下控制臺,對的,一猜就中(小編太🐂了,不點個關注?)

回到項目中,加入beforeunload事件

  •  HTML文件中加入script標簽 
  1. <script type="text/javascript">  
  2.        window.onbeforeunload = function () {  
  3.            return "Leave this page?";  
  4.        }  
  5.    </script> 
  •     點擊關閉,或者此時輸入window.location.href= "xxx.ooo.com"會出現

  •  那么問題來了,如果我通過a標簽跳轉呢?

通過a標簽跳轉(+前端路由)

  •  我使用的是dva/router,引入相關組件 
  1. import { Prompt } from 'dva/router';  
  2. ....  
  3. render(){  
  4.   return <Prompt message={this.handlePrompt} />  
  •  引入Prompt組件,并且傳入message是一個方法,看看這個方法   
  1. public handlePrompt = (location: Location) => {  
  2.        return false;  
  3.    }; 
  •  那么此時我們使用dva/router的history.push方法去跳轉前端路由,就不能跳了,因為handlePrompt一直返回false,除非返回ture,否則這個頁面通過a標簽就無法跳轉了...   

  • 此時無論怎么點擊一鍵開啟都不會有效果,那么改成return true試試 
  1. public handlePrompt = (location: Location) => {  
  2.       return true;  
  3.   }; 
  •  一跳就過去了

問題來了,怎么判斷是否需要跳轉呢?

  •  參考微信公眾號編輯器,如果你編輯了內容后(跟初始進入的數據不一致),而且你是通過頁面內a標簽跳轉的,那么就出現彈窗確認)

  •  那么很簡單,我們使用antd的Modal組件,以及lodash的deepclone(深拷貝)、_.isEqual(value, other)執行深比較來確定兩者的值是否相等。

    ❝    注意: isEqual這個方法支持比較 arrays, array buffers, booleans, date objects, error objects, maps, numbers, Object objects, regexes, sets, strings, symbols, 以及 typed arrays. Object 對象值比較自身的屬性,不包括繼承的和可枚舉的屬性。不支持函數和DOM節點比較。    ❞

實現思路講解

  •  組件初始化時候,深拷貝一份表單數據存入組件中
  •  當用戶通過a標簽離開頁面時,觸發handlePrompt方法,存儲離開的目的url,此時使用isEqual比較當前的數據和組件初始化的表單數據是否一致,如果不一致則出現彈窗,讓用戶選擇是否離開
  •  代碼實現: 
  1. // 處理自定義離開彈窗  
  2.   handlePrompt =(location )=> 
  3.     // 如果當前的保存為false,則彈窗提醒用戶進行保存操作  
  4.     if (!this.isSave) {  
  5.       this.showModalSave(location);  
  6.       return false;  
  7.     }  
  8.     return true;  
  9.   }  
  10.   // 展示離開的提示的彈窗  
  11.   showModalSave = location => {  
  12.     this.setState({  
  13.       modalVisible: true,  
  14.       location,  
  15.     });  
  16.   } 
  17.    // 點擊確認,進行頁面保存操作,和保存成功后路由的跳轉  
  18.   handleSaveAuto = () => {  
  19.     const { location } = this.state;  
  20.     const { history } = this.props;  
  21.     this.isSave = true 
  22.     this.setState({  
  23.       modalVisible: false,  
  24.     });  
  25.     //進行保存操作的處理,這里可以換成自己點擊確認后需要做的操作  
  26.     this.handleSavePaper('save','exit',location.pathname)  
  27.   } 
  •  離開邏輯 
  1. // 取消是的路由跳轉  
  2.   gotoNewUrl(url){  
  3.     const {dispatch,history } = this.props  
  4.     dispatch(routerRedux.push({  
  5.       pathname:url,  
  6.     }));  
  7.   }  
  8.   // 點擊取消關閉彈窗  
  9.   closeModalSave=()=> 
  10.     const { location } = this.state;  
  11.     const {dispatch,history } = this.props  
  12.     this.isSave = true 
  13.     this.setState({  
  14.       modalVisible: false,  
  15.     },()=> 
  16.       this.gotoNewUrl(location.pathname)  
  17.     });  
  18.   } 
  •  html結構 
  1. <Prompt message={this.handlePrompt}/>  
  2. <Modal  
  3.     title="溫馨提示"  
  4.     visible={this.state.modalVisible}  
  5.     closable={false}  
  6.     centered  
  7.     onCancel={this.closeModalSave}  
  8.     footer={null}  
  9. >  
  10.   <p>即將離開當前頁面,是否保存當前修改?</p> 
  11.   <div style={{textAlign:'right'}}>  
  12.     <Button type='primary' onClick={this.handleSaveAuto}>保存</Button>  
  13.     <Button style={{marginLeft:'20px'}} onClick={this.closeModalSave}>取消</Button>  
  14.   </div>  
  15. </Modal> 

 

責任編輯:龐桂玉 來源: 前端大全
相關推薦

2025-09-25 13:51:13

2025-06-30 07:20:00

Web開發API

2013-04-17 10:54:18

Windows PhoWindows Pho

2022-07-03 17:55:53

HTTP頁面瀏覽器

2009-12-04 13:14:19

PHP Global變

2023-04-26 08:18:48

FormPrompt表單更改

2021-04-06 11:07:02

字節跳動組織架構

2025-07-09 07:40:00

2015-06-30 09:44:41

公有云游戲游戲云

2013-07-12 13:24:19

App誘惑

2020-04-20 14:50:02

前端技巧優化

2019-03-25 08:30:20

騰訊互聯網

2023-03-08 12:44:00

谷歌AI區塊鏈

2015-09-02 11:42:27

桌面云深信服

2013-07-05 13:48:47

App

2021-05-31 07:18:46

SpringSecurity信息

2016-03-21 13:24:22

apk安卓開發

2022-02-03 23:50:11

Windows 11Windows 10微軟

2021-03-15 07:43:17

騰訊工作事業

2020-07-14 14:40:05

激光噴墨打印
點贊
收藏

51CTO技術棧公眾號

欧美激情videoshd| 欧美一区二区三区白人| 欧美一区二区三区精美影视| 国产精品自拍第一页| 成人情趣视频网站| 91精品国产乱| 久久久噜噜噜www成人网| 都市激情在线视频| 丁香亚洲综合激情啪啪综合| 欧美一级片一区| 任你操精品视频| 都市激情亚洲| 欧美日韩国产一级片| 久久综合久久网| 二区三区在线播放| 成人精品一区二区三区中文字幕| 国产精品1区2区在线观看| 玖玖爱这里只有精品| 国产精品一在线观看| 欧美成人bangbros| 一级黄色录像在线观看| 日韩av一卡| 一区二区免费在线| 亚洲一区二区三区精品动漫| 三级网站在线看| 国精产品一区一区三区mba桃花| 97视频在线观看免费| 视频国产一区二区| 欧美一区二区三| 亚洲欧美日韩精品久久奇米色影视| 久久久九九九热| 国产成人免费9x9x人网站视频| 午夜精品福利一区二区三区av| 丰满女人性猛交| 成人在线高清视频| 久久久精品综合| 精品网站在线看| 一本色道无码道dvd在线观看| 国产日韩欧美在线观看视频| 欧美精选视频在线观看| 亚洲精品videossex少妇| 性色av浪潮av| 国产精品2区| 欧美日韩亚洲国产综合| 别急慢慢来1978如如2| 欧美aa在线观看| 香蕉久久一区二区不卡无毒影院| 国产乱子伦精品视频| 日本在线天堂| 国产精品久线观看视频| 日韩一区不卡| 国产视频在线看| 久久色成人在线| 久久国产手机看片| 视频在线观看你懂的| 99精品欧美一区二区蜜桃免费 | 成人网在线播放| 91福利视频导航| 精品人妻av一区二区三区| 国产在线观看一区二区| 18成人在线| 超碰人人人人人人| 国产91丝袜在线播放0| 成人国产一区二区| 少妇精品高潮欲妇又嫩中文字幕 | 久久久123| 一区二区三区四区在线免费观看| 成人高清dvd| 欧美人动性xxxxz0oz| 午夜精品久久久久| 可以免费在线看黄的网站| av一区在线播放| 欧美人与z0zoxxxx视频| 久久久福利影院| 99久久人爽人人添人人澡| 日韩精品一二三四区| 中国毛片在线观看| 国产精品久久占久久| 久久国产天堂福利天堂| 久久综合加勒比| 午夜亚洲影视| 成人免费福利在线| 日韩中文字幕免费观看| 国产亚洲精品精华液| 伊人久久大香线蕉av一区| 午夜伦理在线视频| 色综合 综合色| 亚洲精品性视频| 大奶在线精品| 在线播放国产一区中文字幕剧情欧美 | 尤物九九久久国产精品的分类| www.xxxx日本| 亚洲黄色影片| 国产精品欧美日韩一区二区| www久久久com| 国产视频一区不卡| 亚洲精品天堂成人片av在线播放| 五月天av在线| 91精品欧美一区二区三区综合在| 亚洲熟女乱综合一区二区三区| 成人精品中文字幕| 欧美精品激情在线观看| 中文字幕xxxx| 成人一区二区视频| 一区二区91美女张开腿让人桶| 俄罗斯一级**毛片在线播放| 欧美性猛片aaaaaaa做受| 免费黄色在线播放| 日韩美女一区二区三区在线观看| 韩剧1988免费观看全集| ,一级淫片a看免费| www激情久久| 黄色一级片黄色| 亚洲aⅴ网站| 亚洲精品丝袜日韩| 国产一级片网址| 激情综合五月婷婷| 视频一区亚洲| 免费在线小视频| 欧美一区二区成人6969| 无码少妇精品一区二区免费动态| 91久久黄色| 91手机在线观看| 欧美jizz18性欧美| 欧日韩精品视频| 北岛玲一区二区| 在线欧美一区| 99re在线| 在线中文字幕视频观看| 欧美日韩国产色站一区二区三区| 法国伦理少妇愉情| 亚洲免费精品| 国内精品久久国产| av女在线播放| 亚洲成人999| 国产乱国产乱老熟300| 久久国内精品自在自线400部| 日韩和欧美的一区二区| 成人免费看视频网站| 精品亚洲夜色av98在线观看 | av毛片在线| 欧美精品视频www在线观看| 公肉吊粗大爽色翁浪妇视频| 奶水喷射视频一区| 欧美日韩一区二| 不卡福利视频| 亚洲一区av在线播放| 亚洲熟妇无码乱子av电影| 91色九色蝌蚪| 成人久久久久久久久| 亚洲婷婷影院| 日韩av电影在线播放| 欧美美女搞黄| 91久久精品网| 99久久久无码国产精品不卡| 久久99久久99| 人妻无码一区二区三区四区| 亚洲国产中文在线二区三区免| 欧美劲爆第一页| 手机看片福利永久| 日韩欧美有码在线| 91成人在线免费视频| 免费成人av在线| 日本女人高潮视频| y111111国产精品久久久| 午夜精品一区二区三区在线播放| 污视频软件在线观看| 欧美丝袜一区二区| 国产精品美女高潮无套| 九一九一国产精品| www国产免费| 欧美三级午夜理伦三级小说| 国产91热爆ts人妖在线| 激情视频在线观看| 亚洲精品在线观看网站| 亚洲 日本 欧美 中文幕| 国产精品美女久久久久久久久| 亚洲五月激情网| 日韩视频久久| 亚洲精品乱码视频| 一区二区三区免费在线看| 97香蕉超级碰碰久久免费软件| 高清av在线| 欧美一区二区三区视频在线| 91蜜桃视频在线观看| 亚洲国产精品t66y| 91传媒理伦片在线观看| 丝袜美腿高跟呻吟高潮一区| 强开小嫩苞一区二区三区网站 | 久久午夜国产精品| 欧洲美女亚洲激情| 国产精品久久国产愉拍| 亚洲欧美丝袜| 欧美日韩导航| 91久久嫩草影院一区二区| 男人天堂视频在线观看| 久久精品久久久久久国产 免费| 人妻va精品va欧美va| 91黄视频在线观看| 久草资源在线视频| 国产精品色婷婷久久58| 少妇熟女视频一区二区三区| 日韩二区三区四区| 精品视频在线观看一区二区| 精品一区亚洲| 国产精品国产精品国产专区不卡| 成人av集中营| 欧美在线xxx| 色帝国亚洲欧美在线| 深夜成人在线观看| 四虎成人免费在线| 欧美大片一区二区| 亚洲无码精品在线观看| 色噜噜偷拍精品综合在线| 国产性70yerg老太| 亚洲男人天堂av| 欧美激情视频二区| 91蝌蚪porny九色| 韩国三级hd两男一女| 国产精品1区2区| 在线看的黄色网址| 久久综合影音| 午夜肉伦伦影院| 136国产福利精品导航网址| 欧美一级黄色录像片| 欧美自拍偷拍| 日韩免费电影一区二区三区| 欧美国产极品| 国产在线一区二区三区播放| 日本一区二区乱| 91嫩草免费看| 99国产精品久久一区二区三区| 99re在线观看| 亚洲国产欧美国产第一区| 91午夜在线播放| 国产精品3区| 91精品在线看| 久久久久亚洲精品中文字幕| 国产欧美精品在线| 四虎精品在线观看| 国产精品午夜视频| 欧美91在线|欧美| 国产精品影片在线观看| av在线一区不卡| 国产精品视频yy9099| 福利一区二区免费视频| 国产极品精品在线观看| gogo亚洲高清大胆美女人体| 日本亚洲精品在线观看| 亚洲承认视频| 国产精品永久免费| 亚洲久草在线| 成人高清在线观看| 日本国产精品| 日韩高清专区| 久久福利影院| 无码毛片aaa在线| 伊人久久久大香线蕉综合直播 | 日本欧洲一区二区| 天天爽人人爽夜夜爽| 奇米色一区二区| 亚洲五月激情网| 成人午夜激情在线| 日本丰满少妇裸体自慰 | 亚洲第一区第二区| 蜜桃视频在线观看视频| 伊人伊成久久人综合网站| 免费看a在线观看| 久久99精品久久久久久琪琪| 国产精品xx| 国产精品电影在线观看| 白嫩亚洲一区二区三区| 国产精品久久亚洲| 欧美日韩国产高清电影| 一道本在线观看视频| 亚洲国内欧美| 国产又黄又猛又粗又爽的视频| 激情成人综合网| 久久人妻一区二区| 国产性天天综合网| 久草国产在线观看| 色爱区综合激月婷婷| 国产精品一区二区免费视频| 亚洲的天堂在线中文字幕| 免费黄网站在线观看| 久久国产精品久久久久久| 在线能看的av网址| 91在线观看免费高清完整版在线观看| 精品亚洲自拍| 亚洲精品自在在线观看| 激情久久婷婷| 国产三级国产精品国产专区50| 懂色av一区二区夜夜嗨| 男人的天堂av网| 亚洲成人自拍一区| 一区二区小视频| 亚洲国产欧美一区二区三区同亚洲 | 欧美激情福利| 久久久水蜜桃| 国产精品观看| 中文字幕永久有效| 久久美女艺术照精彩视频福利播放| 午夜精品一区二区三区视频| 一本一道波多野结衣一区二区| 国产丰满果冻videossex| 亚洲网站在线看| 欧美xxxhd| 99热在线国产| 91超碰国产精品| 黄色免费网址大全| 99久久精品情趣| 欧美极品aaaaabbbbb| 欧美日韩极品在线观看一区| 日本不卡视频一区二区| 欧美黄色片视频| 深夜福利亚洲| 视频一区二区精品| 狂野欧美一区| 亚洲精品乱码久久久久久久| 一区二区免费看| 精品人妻少妇嫩草av无码专区 | av第一福利在线导航| 91免费视频国产| 久久国产成人精品| 黄色三级视频在线| 国产亚洲婷婷免费| 国产成人精品网| 日韩激情av在线播放| 爱搞国产精品| 国产综合动作在线观看| 亚洲精华国产欧美| jjzz黄色片| 亚洲成人久久影院| 色哟哟国产精品色哟哟| 久久青草福利网站| 国产成人aa在线观看网站站| 乱熟女高潮一区二区在线| 国产成人免费在线视频| 欧美国产精品一二三| 欧美成人vps| 大香伊人中文字幕精品| 国产九区一区在线| 日韩视频在线一区二区三区| 久久久久麻豆v国产精华液好用吗| 亚洲成人自拍一区| 香港三日本三级少妇66| 91高清免费在线观看| 中文字幕精品影院| 成人在线观看a| 国产精品久久久久久久久免费樱桃 | 欧美成人女星排行榜| 丁香花电影在线观看完整版| 国产伦精品一区二区三区照片| 亚洲成人在线| 插吧插吧综合网| 欧美亚洲日本一区| 九七电影韩国女主播在线观看| 91嫩草在线视频| 亚洲二区精品| 老牛影视av老牛影视av| 欧美色图免费看| 在线观看操人| 久久精品日产第一区二区三区| 性欧美长视频| 日韩av毛片在线观看| 欧美成人一区二区三区在线观看| 国产美女福利在线观看| 蜜桃999成人看片在线观看| 天堂一区二区在线| 国精产品一区一区二区三区mba| 日韩精品专区在线影院观看| 久草在线资源福利站| 色一情一区二区三区四区 | a视频免费观看| 欧美性受xxxx| 综合久久2o19| 欧美日韩视频在线一区二区观看视频| 奇米888四色在线精品| 国模无码国产精品视频| 日韩av在线网页| 日韩毛片一区| 国产精品视频网站在线观看| 久久亚洲精品小早川怜子| 国产精品无码天天爽视频| 久久久久久亚洲精品不卡| 精品视频日韩| 亚洲一区和二区| 欧美日韩日日夜夜| av色在线观看| 中文字幕av日韩精品| 99久久99久久精品免费观看| 中文字幕 欧美激情| 欧美极品美女电影一区| gogogo高清在线观看一区二区| 久久久无码人妻精品无码| 欧美日韩一级片网站| 国内激情视频在线观看| 中文字幕中文字幕99| 91美女在线观看| 亚洲国产精品久久久久久6q|