当你的移动端页面有弹窗的组件并且这个组件不是来自于某些知名的组件库,你是否有这样的需求?当用户唤起弹窗之后又按下了手机自带的回退键,弹窗之前的页面也被关掉了,而用户本身的意愿是关掉弹窗而已。如果你也有这样的诉求,这篇文章帮你解决!

1.给history增加一条记录

手机自带的回退键默认是回到上一个页面,所以我们用watch监听,在弹窗弹起的时候我们给history添加一条记录保证在按下回退键后能保持在当前页(用到的是vue3的监听), 我这个页面有三个弹窗,同时监听三个变量,当为true时弹窗唤起,记得引入watch组件,代码如下:

2.监听页面的回退事件

第二步就是要监听浏览器自带的回退事件,并在回调函数中处理你的逻辑,我这里是关闭弹窗,代码如下:

3.非后退键关闭弹窗的处理

如果弹窗是由点击弹窗中的内容或者弹窗中的关闭按钮而非手机自带后退键关闭的,我们需要后退一下,否则,在页面有多个弹窗的时候,history中的记录会非常多,出现用户想退出本页面时,按下手机后退键一直无法退出的情况,vue3中记得引入路由组件并注册,具体代码如下:

这样就大功告成啦,你还有什么更好的方法,欢迎评论区留言~

vue3实现H5监听浏览器回退并阻止回退相关推荐

  1. h5监听浏览器返回,关闭浏览器

    需求 监听浏览器返回,点击返回时,显示弹窗,弹窗中有两个按钮,a按钮:关闭当前浏览器,b按钮:关闭弹窗 mounted(){// 向历史记录中插入了当前页,//为了ios首次进入页面出现底部返回按钮i ...

  2. 移动端h5监听浏览器返回操作(目前在react项目中用到)

    前言 1.主要是返回是默认的浏览器返回事件是返回上一个页面. 2.处理页面各种弹窗,点击物理返回应该隐藏这些弹窗而不是直接返回页面. 3.总结下问题,h5应该希望能监听到返回事件并且做一些处理. 相关 ...

  3. h5 监听浏览器被切换到后台或者手机锁屏再次唤起事件

    H5有一个事件叫 visibilitychange ,当浏览器的某个标签页切换到后台,或从后台切换到前台时就会触发该消息,代码如下: document.addEventListener("v ...

  4. H5 监听手机浏览器 后台唤醒 激活

    var reLoadLeftTime = false ; //监听浏览器当前页面是否被激活的事件 var hiddenProperty = 'hidden' in document ? 'hidden ...

  5. popState 监听浏览器切换路由

    浏览器内 popState 监听器使用 在前端开发过程中,在一些业务场景中可能会遇到监听浏览器前进/后退.控制路由等情况.我们可以使用Web API提供的popState事件来处理这些情况,提到pop ...

  6. 【webview】微信和PC监听浏览器关闭和刷新(亲测可用)

    监听浏览器关闭和刷新 前言 PC端 微信端 前言 最近做的项目里有一个新的需求,在不同的浏览器内打开的网页,监听用户的操作,比如关闭浏览器,刷新浏览器等等. 这就涉及到了几个平台:PC端浏览器,移动端 ...

  7. linux输入数字切换浏览器tab,js监听浏览器tab窗口切换

    js监听浏览器tab窗口切换 --IT唐伯虎 摘要:js监听浏览器tab窗口切换. if (document.hidden !== undefined) { document.addEventList ...

  8. html5 浏览器退回事件,html5的pushstate以及监听浏览器返回事件的实现

    这篇文章主要介绍了html5的pushstate以及监听浏览器返回事件的实现,主要介绍了pushstate的使用,以及监听浏览器的解决等问题,感兴趣的可以一起来了解一下 pushstate与监听浏览器 ...

  9. javaScript如何监听浏览器关闭事件

    转载链接:http://www.cnblogs.com/Tim_Liu/archive/2010/11/09/1872596.html 最近写东西的时候发现需要对浏览器的关闭进行监听, 当用户关闭的时 ...

最新文章

  1. 文档类CDocument、子框架类CFrameWnd及视图类CView的关系及如何相互调用
  2. Leetcode-翻转图像(832)
  3. Linux学习之系统编程篇:孤儿进程和僵尸进程(描述对象都是子进程)
  4. 计算机组成原lta,计算机组成原理实验三运算器
  5. S5P4418 OV5640摄像头 花屏的解决方法
  6. JAVA链表中迭代器的实现
  7. caffe运行问题(持续更新),sublime设置
  8. 地区选择控件的制作(仿中华英才网地区选择控件)
  9. android 高通替换开机logo,高通平台 开机logo 替换
  10. javascript特效大全
  11. Android原生支持组件编译,从0开始编译android类原生系统
  12. 记一次ASP绕过WTS-WAF
  13. 解密:LL与LR解析 1(译)
  14. 【TCO2013 Semifinal 2】 OneBlack
  15. samba文件共享,windows与linux共享
  16. SPI通信拓扑如何选择?
  17. latch的概念与机制
  18. pdf怎么加书签步骤介绍
  19. 单片机MCU51系列RTOS多任务超微操作系统精髓 简单实现 汇编及C语言混合 keil9.0工程源码
  20. 【图】Dijkstra(迪杰特斯拉)算法、左神Java版

热门文章

  1. 电脑蓝屏是哪里出了问题?不一定要非要重装系统
  2. 也谈目前大学生的学习和就业
  3. Java int 和 Integer 互转原理
  4. 技术Leader,技术和管理哪个重要?
  5. 信捷PLC通过EtherCat与松下伺服通讯时的断电重启时会产生巨大异响的Bug原因及解决办法
  6. tagwriter汉化版_【NFC TagWriter by NXP】安卓下载_NFC TagWriter by NXPv3.8.60最新手机版下载-91手游网...
  7. 里程碑|BSV交易总量突破10亿笔
  8. zend stuido 12.5的插件安装和xdebug调试器的配置和和配置注意
  9. vue中的watch和computer的使用
  10. .net DataExcel 控件开发使用说明