首页 > 其他分享 >vue里浏览器返回键如何禁用

vue里浏览器返回键如何禁用

时间:2023-04-06 15:47:16浏览次数:27  
标签:vue 浏览器 URL 禁用 popstate state pushState history

 1 mounted () {
 2 
 3   // 禁用浏览器返回键
 4 
 5   history.pushState(null, null, document.URL);
 6 
 7   window.addEventListener('popstate', this.disableBrowserBack);
 8 
 9 },
10 
11 destroyed() {
12 
13   // 清除popstate事件 否则会影响到其他页面
14 
15   window.removeEventListener("popstate", this.disableBrowserBack, false);
16 
17 },
18 
19 methods: {
20 
21   disableBrowserBack() {
22 
23     history.pushState(null, null, document.URL);
24 
25   }

 


history的认识
history 对象包含浏览器历史。

常见属性/方法:

1 history.length - 属性保存着历史记录的 URL 数量;
2 history.back() - 等同于在浏览器点击后退按钮;
3 history.forward() - 等同于在浏览器中点击前进按钮;
4 history.go() - 加载 history 列表中的某个具体页面。


H5新增了属性/方法/事件

1 history.state - 属性用来保存记录对象;
2 history.pushState() - 向浏览器的历史记录中添加一个状态;
3 history.replaceState() - 修改当前历史记录实体;
4 popstate事件 - 当活动历史记录条目更改时,将触发

(1).history.state

返回当前页面的 state 对象

(2).history.pushState(state, title, url)

state: 状态对象可以是任何可以序列化的对象。

title: 当前大多数浏览器都忽略此参数,尽管将来可能会使用它。

url: 新历史记录条目的 URL 由此参数指定。如果未指定此参数,则将其设置为文档的当前 URL。

3.history.replaceState(state, title, url)

修改当前历史记录实体,如果你想更新当前的 state 对象或者当前历史实体的 URL 来响应用户的的动作的话这个方法将会非常有用。参数与 pushState 类似。

4.popstate事件

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

需要注意的是调用 history.pushState() 或 history.replaceState() 不会触发 popstate 事件。只有在做出浏览器动作时,才会触发该事件,如用户点击浏览器的回退按钮(或者在 Javascript 代码中调用 history.back() 或者 history.forward() 方法)。

不同的浏览器在加载页面时处理 popstate 事件的形式存在差异。页面加载时 Chrome 和 Safari 通常会触发(emit ) popstate 事件,但 Firefox 则不会

原文链接:https://blog.csdn.net/qq_27674439/article/details/123797783

标签:vue,浏览器,URL,禁用,popstate,state,pushState,history
From: https://www.cnblogs.com/wjian0916/p/17292929.html

相关文章

  • vue里cdn引入改为本地js文件引用
     问题vue项目cdn引用会出现网络加载不了问题 vue项目cdn引用  改为本地public/index.html引入首先把cdn的链接复制在浏览器里打开或直接下载下来把js文件放到public文件夹下面  在index.html里引入,注意生产环境才加载出来 ......
  • vue第七课:记事本实例
    功能需求:新增生成列表结构获取用户输入回车,新增数据  删除点击删除指定内容(v-onsplice)  splice(index,1) 删除1个对应的索引统计v-text,length  清空数组清空  隐藏没有数据时,隐藏元素(v-if,v-show数组非空)  <divid='app'><inpu......
  • 2023.04.06 - 使用mixin动态混入,对vue组件中的数据做兼容经验总结(xp)
    业务场景:在一个高拍仪的硬件设备中,厂家给了两套不同的API,分别支持winXP和winXP以上版本的系统,而这两套API的实现方式截然不同,一套使用的是http通信,一套是使用scoket通信,方法的调用自然也是不同。我需要在同一组件兼容这两套代码。这种需求下很明显,我除了修改组件里的函数方法,......
  • PDM——发动机PDM报错“Windchill 只支持标准模式下的 Internet Explorer 浏览器。请
     解决办法:通过IE8访问WindchillPDMLink10.0,出现警告提示"Windchill只支持标准模式下的浏览器".说明:详细警告提示如下注意:检测到不支持的浏览器模式。Windchill只支持标准模式下的InternetExplorer浏览器。请联系系统管理员帮助您设置浏览器。适用于 WindchillPDM......
  • 直播商城源码,vue 弹窗 惯性滚动 加速滚动
    直播商城源码,vue弹窗惯性滚动加速滚动弹窗基础组件新建文件components/zwy-popup <template><divv-show="ishide"@touchmove.stop.prevent><!--遮罩--><divclass="mask":style="maskStyle"></div><!--内容--><divcl......
  • Vue进阶(四十五):精解 ES6 Promise 用法
    一、前言复杂难懂概念先不讲,我们先简单粗暴地把Promise用一下,有个直观感受。那么第一个问题来了,Promise是什么呢?是类?对象?数组?函数?别猜了,console.dir(Promise)直接打印出来看看。这么一看就明白了,Promise是一个构造函数,自己身上有all、reject、resolve这几个眼熟的方法,原型上有th......
  • vue之列表渲染v-for
    目录简介用法v-for可循环的几种变量的展示数组的循环展示对象的循环展示字符串的循环展示数字的循环展示v-for搭档key值的说明js循环几种方式基于索引的循环数组的循环数组基于索引的循环数组基于迭代的循环基于of的循环数组的方法循环jQuery的循环点击按钮隐藏/显示列表示例简......
  • vue第六课:v-for,v-on补充,v-model
    1,v-for指令根据数据生成列表结构<divid='app'><inputtype="button"value="添加数据"@click="add"><inputtype="button"value="删除数据"@click="remove"><ul><......
  • vue第五课:图片切换实例
    知识点:1,定义图片数组2,添加图片索引3,绑定src属性4,图片切换逻辑需求:第一张图片不显示上一页(隐藏)最后一张图片不显示下一页(隐藏)<divid='app'><img:src="imgarr[index]"><ahref="#"v-show="index!=0"@click="prev"><imgs......
  • vue之条件渲染
    目录说明语法示例说明“vue条件渲染指令包括v-if、v-else、v-else-if、v-show。语法v-if="条件1&&条件2"#条件可以用变量+运算符号表示,&&表示andv-if-else="条件"v-else#因为是例外,所以不需要使用条件示例<body><divid="app"><h1&......