vue处理物理返回键(Android/iOS)和浏览器返回(已完美解决)

vue处理物理返回键(Android/iOS)和浏览器返回(已完美解决)

vue处理物理返回键(Android/iOS)和浏览器返回(已完美解决)

最新推荐文章于 2024-08-16 13:39:28 发布

原创

最新推荐文章于 2024-08-16 13:39:28 发布

·

5k 阅读

·

3

·

9

·

CC 4.0 BY-SA版权

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文介绍了一种在Vue应用中拦截浏览器返回键的方法,通过监听popstate事件并自定义回调函数,实现对用户返回行为的控制。同时,文章还展示了如何在组件销毁时移除事件监听,以及在弹框显示时更新浏览器历史记录。

摘要生成于

C知道

,由 DeepSeek-R1 满血版支持,

前往体验 >

mounted() {

// 按需使用:在页面一进来的时候,添加一个历史记录,popstate不可修改

window.history.pushState(null, null, document.URL);

// 给 window 添加一个 popstate 事件,拦截返回键,执行 this.onBrowserBack 事件,addEventListener 需要指向一个方法

window.addEventListener("popstate", this.onReturnBack, false);

},

destroyed() {

// 页面销毁时必须要移除这个事件,vue 不刷新页面,不移除会重复执行

window.removeEventListener("popstate", this.onBrowserBack, false);

},

watch: {

// 弹框监听,当弹框显示的时候,pushState 添加一个历史,供返回键使用

PopupShow: {

handler(newVal, oldVal) {

if (newVal.Terms === true) {

window.history.pushState(null, null, document.URL);

}

},

deep: true

}

},

methods: {

onReturnBack() {

// 这里写点击返回键时候的事件

// 比如判断需求执行 back() 或者 go(-2) 或者 PopupShow=true 弹出提示框

}

}

相关数据