vue 弹窗时 监听手机返回键关闭弹窗(页面不跳转)

摘要:
当显示vue弹出窗口时,监视器电话返回键将关闭弹出窗口[注意]:popstate事件a。当活动历史记录条目更改时,将触发popstate事件。
vue 弹窗时 监听手机返回键关闭弹窗(页面不跳转)
 

[注]:  popstate 事件

  a.当活动历史记录条目更改时,将触发popstate事件。

  b.如果被激活的历史记录条目是通过对history.pushState()的调用创建的,或者受到对history.replaceState()的调用的影响,

         popstate事件的state属性包含历史条目的状态对象的副本。

  c.需要注意的是调用history.pushState()history.replaceState()不会触发popstate事件。

  d.只有在做出浏览器动作时,才会触发该事件,如用户点击浏览器的回退按钮(或者在Javascript代码中调用history.back()

具体代码:

1. 配置路由 meta 的 keepAlive 属性 , 再App中 使用 keep-alive 标签 将当前页面加入缓存中  

vue 弹窗时 监听手机返回键关闭弹窗(页面不跳转)第1张

vue 弹窗时 监听手机返回键关闭弹窗(页面不跳转)第2张

2.  打开弹窗调用 window.history.pishState() 函数

vue 弹窗时 监听手机返回键关闭弹窗(页面不跳转)第3张

3. activated生命周期 监听popstate 事件 ,deactivated 生命周期 移除popstate事件

vue 弹窗时 监听手机返回键关闭弹窗(页面不跳转)第4张

4. 配置事件监听函数

vue 弹窗时 监听手机返回键关闭弹窗(页面不跳转)第5张

jq操作

  function pushHistory() {
            var state = {
                title: "title",
                url: "#"
            };
            window.history.pushState(state, "title", "#");
        }
 
 
    
            window.addEventListener("popstate", function(e) {
                if ($("#agreementContent").css('display') == "block"){
                    $("#agreementContent").hide();
                } else {
                history.back()
                }
            }, false);
弹窗显示时调用pushHistory()方法  ,  文档就绪事件中监听 popstate 如果弹窗正在显示就关闭弹窗,  如果不是就返回上一页面
 

免责声明:文章转载自《vue 弹窗时 监听手机返回键关闭弹窗(页面不跳转)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇单片机中断函数的理解感悟一文揭秘如何利用AndroidGodEye 打造Android应用性能测试监控下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

vue页面是否缓存的两种方式

第一种 <keep-alive> <router-view v-if="$route.meta.keepAlive"></router-view> </keep-alive> <router-view v-if="!$route.meta.keepAlive"></router-view&g...

vuejs心法和技法

http://www.cnblogs.com/kidsitcn/p/5409994.html 注意:本文记录作者在学习和使用vuejs开发中的点点滴滴,从vuejs1.0开始直到现在的vuejs2.0以后的版本。期中部分1.0的内容已经过时,仅作各位朋友参考,建议重点关注2.0相关的内容,会随着我对vuejs有了更多的体会后不断维护更新,也欢迎朋友们批评...

vue中时间控件绑定多个输入框

首先去下载laydate时间控件,引入到相应的模板中<input type="text"val-required=""value=""date-laydate=""id="estab_dateA"class="initial_date laydate-icon"@click="dateBlock('#estab_dateA')"> <i...

vue 获取元素高度

1、html <div ref="getheight"></div> <br><br> 2、JavaScript //获取高度值 (内容高+padding+边框) let height= this.$refs.getheight.offsetHeight; //获取元素样式值 (存在单位) le...

Vue切换页面时中断axios请求

一、概述 在Vue单页面开发过程中,遇到这样的情况,当我切换页面时,由于上一页面请求执行时间长,切换到该页面时,还未执行完,这时那个请求仍会继续执行直到请求结束,此时将会影响页面性能,并且可能对现在页面的数据显示造成一定影响 所以我们应该,切换页面前中断前面所有请求 二、解决方法 在main.js中,重新封装axios请求,在router.beforeEa...

Vuejs之开发环境搭建

Vue.jsVue.js是目前很火的一个前端框架,采用MVVM模式设计,它是以数据驱动和组件化的思想构建的。相比于Angular.js,Vue.js提供了更加简洁、更易于理解的API,使得我们能够快速地上手并使用,特别适合单页应用的开发。Vue.js是数据驱动的,它通过一些特殊的语法,将DOM和数据绑定起来,无需手动操作DOM。一旦创建了绑定,DOM将和数据...