前言
分享页面时,希望点击浏览器回退按钮,回到项目首页,增加访问量。
需要监听浏览器的回退按钮,并阻止其默认事件。
具体步骤如下:
1、挂载完成后,判断浏览器是否支持popstate
mounted(){ if (window.history && window.history.pushState) { history.pushState(null, null, document.URL); window.addEventListener('popstate', this.goBack, false); } },
2、页面销毁时,取消监听。否则其他vue路由页面也会被监听
destroyed(){ window.removeEventListener('popstate', this.goBack, false); },
3、将监听操作写在methods里面,removeEventListener取消监听内容必须跟开启监听保持一致,所以函数拿到methods里面写
methods:{ goBack(){ this.$router.replace({path: '/'}); //replace替换原路由,作用是避免回退死循环 } }
附:popstate用来做什么的?
popstate的怎么用?
HTML5的新API扩展了window.history,使历史记录点更加开放了。可以存储当前历史记录点pushState、替换当前历史记录点replaceState、监听历史记录点popstate。
pushState、replaceState两者用法差不多。
使用方法:
history.pushState(data,title,url); //其中第一个参数data是给state的值;第二个参数title为页面的标题,但当前所有浏览器都忽略这个参数,传个空字符串就好;第三个参数url是你想要去的链接;
replaceState用法类似,例如:history.replaceState("首页","",location.href+ "#news");
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论(0)