vue监听浏览器返回

代码

监听返回

mounted () {
    if (window.history && window.history.pushState) {
        // 向历史记录中插入了当前页
        history.pushState(null, null, document.URL);
        window.addEventListener(‘popstate‘, this.goBack, false);
    }
},
destroyed () {
    window.removeEventListener(‘popstate‘, this.goBack, false);
},
methods: {
    goBack () {
        // console.log("点击了浏览器的返回按钮");
        sessionStorage.clear();
        window.history.back();
    },
} 

因为这个页面有跳转其他页面的路由,所以在组件的路由钩子里也清了缓存

beforeRouteLeave (to, from , next) {
    sessionStorage.clear();
    next()
},

禁用返回

mounted () {
    if (window.history && window.history.pushState) {
        // 向历史记录中插入了当前页
        history.pushState(null, null, document.URL);
        window.addEventListener(‘popstate‘, this.goBack, false);
    }
},
destroyed () {
    window.removeEventListener(‘popstate‘, this.goBack, false);
},
methods: {
    goBack () {
        // console.log("点击了浏览器的返回按钮");
        history.pushState(null, null, document.URL);
    },
} 

history对象

window可以省略,直接使用history
1、window.history.back() : 后退
2、window.history.forward() : 前进
3、window.history.go(num) : 前进或后退指定数量历史记录

window.history.go(1)
前进
window.history.go(-1)
后退
window.history.go(0)
刷新

4、window.history.pushState(state, title, url)
存储当前历史记录点

state:一个对象,可以添加相关信息
title:历史记录的标题
url:创建的历史记录的链接

5、window.history.replaceState(state, title, url)
替换当前历史记录点

6、popstate
history 实体改变时触发的事件,监听历史记录点

7、window.history.state
获取 history 实体中的 state 对象

history.go(0) 和 location.reload() 的区别
一、location.reload()
默认参数为false,即location.reload(false)

1、location.reload(false):
会用 HTTP 头 If-Modified-Since 来检测服务器上的文档是否已改变
如果文档已改变,从服务端再次下载该文档
如果文档未改变,从缓存中装载文档
作用等同于点击浏览器的刷新按钮 (F5)

2、location.reload(true):
绕过缓存,从服务器上重新下载该文档
作用等同于点击浏览器的刷新按钮,同时按住Shift (Shift+F5)

二、history.go(0)
直接读取缓存数据,不会从服务器端获取数据

history.go(-1) 和 history.back() 的区别
一、history.go(-1)
后退并刷新,原页面表单中的内容会丢失
二、history.back()
后退,原页面表单中的内容会保留

原文:https://blog.csdn.net/weixin_33953384/article/details/87518720

原文地址:https://www.cnblogs.com/chao202426/p/11262892.html

时间: 2024-10-08 18:18:43

vue监听浏览器返回的相关文章

监听浏览器返回键、后退、上一页事件(popstate)操作返回键

在WebApp或浏览器中,会有点击返回.后退.上一页等按钮实现自己的关闭页面.调整到指定页面.确认离开页面或执行一些其它操作的需求.可以使用 popstate 事件进行监听返回.后退.上一页操作. 一.简单介绍 history 中的操作 1.window.history.back(),后退 2.window.history.forward(),前进 3.window.history.go(num),前进或后退指定数量历史记录 4.window.history.pushState(state, t

监听浏览器返回,上一页事件

在WebApp或浏览器中,会有点击返回.后退.上一页等按钮实现自己的关闭页面.调整到指定页面.确认离开页面或执行一些其它操作的需求.可以使用 popstate 事件进行监听返回.后退.上一页操作. 一.简单介绍 history 中的操作 1.window.history.back(),后退 2.window.history.forward(),前进 3.window.history.go(num),前进或后退指定数量历史记录 4.window.history.pushState(state, t

监听浏览器返回,pushState,popstate 事件,window.history对象

在WebApp或浏览器中,会有点击返回.后退.上一页等按钮实现自己的关闭页面.调整到指定页面.确认离开页面或执行一些其它操作的需求.可以使用 popstate 事件进行监听返回.后退.上一页操作. 一.简单介绍 history 中的操作 1.window.history.back(),后退 2.window.history.forward(),前进 3.window.history.go(num),前进或后退指定数量历史记录 4.window.history.pushState(state, t

vue监听浏览器窗口的变化,随着窗口变化调整里面table的宽高

1.在data中设置: 1 tableHeight:"500", 2 screenHeight:window.innerHeight, 2.在mounted中设置: 1 mounted() { 2 const that = this 3 window.onresize =() =>{ 4 return (()=>{ 5 window.screenHeight = window.innerHeight 6 this.screenHeight = window.screenHe

监听浏览器返回按钮事件

pushHistory(); window.addEventListener("popstate", function(e) { //alert("我监听到了浏览器的返回按钮事件啦");//根据自己的需求实现自己的功能 window.location = '/m/jfscapp/views/product/product_exchange.html'; }, false); function pushHistory() { var state = { title:

vue+hbuilder监听安卓返回键问题

1.监听安卓返回键问题 效果:在一级页面按一下返回键提示退出应用,按两下退出应用;在其它页面中,按一下返回上个历史页面 1 2 import mui from './assets/js/mui.min.js' Vue.prototype.$mui = mui; 在一级页面mounted时 1 this.$mui.plusReady( () =>{ 2 var backcount = 0; 3 this.$mui.back = ()=> { 4 if (this.$mui.os.ios) ret

JS 监听浏览器标签页显示隐藏

JS 监听浏览器标签页显示隐藏 API document.hidden 判断页面是否隐藏的布尔值.页面隐藏包括 页面在后台标签页中 或者 浏览器最小化 document.visibilityState (只读属性), 返回document的可见性,4个值: hidden:文档处于背景标签页或者窗口处于最小化状态,或者操作系统正处于 '锁屏状态' visible:此页面在前景标签页中,并且窗口没有最小化 prerender:页面在屏幕外执行预渲染处理 document.hidden 的值为 tru

JS监听手机返回键

JS监听手机返回键,需要用些前端的"奇技淫巧". 核心代码如下: if (window.history && window.history.pushState) { $(window).on('popstate', function() { var hashLocation = location.hash; var hashSplit = hashLocation.split("#!/"); var hashName = hashSplit[1];

vue监听滚动事件,实现滚动监听

在vue中实现滚动监听和原生js无太大差异,下面是一个简单的demo,可在控制台查看结果 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <script type="text/javascript" src="https://unpkg