如何禁止浏览器中点回退按钮能回退到上一页?

Posted asdfasdfasdad

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何禁止浏览器中点回退按钮能回退到上一页?相关的知识,希望对你有一定的参考价值。

概述

当活动历史记录条目更改时,将触发popstate事件。如果被激活的历史记录条目是通过对history.pushState()的调用创建的,或者受到对history.replaceState()的调用的影响,popstate事件的state属性包含历史条目的状态对象的副本。

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

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

html5的新API扩展了window.history:

  • 可以存储当前历史记录点pushState、
  • 替换当前历史记录点replaceState、
  • 监听历史记录点popstate。

示例代码:

  // 把这段代码放到需要点击浏览器回退按钮的页面中,
  history.pushState(back: 1, null, "?back=1");
  window.onpopstate = function(event) 
   console.log(event);
    history.pushState(back: 1,null, "?back=1");
  ;

使用说明 :

history.pushState(data,title,url);
// 其中第一个参数data是给state的值;
// 第二个参数title为页面的标题,但当前所有浏览器都忽略这个参数,传个空字符串就好;
// 第三个参数url是你想要去的链接;

兼容性:

欢迎指正交流!

文献:https://developer.mozilla.org/zh-CN/docs/Web/Events/popstate

以上是关于如何禁止浏览器中点回退按钮能回退到上一页?的主要内容,如果未能解决你的问题,请参考以下文章

js防止backspace回退到上一界面(兼容各种浏览器)

iframe内嵌别人页面,点击回退按钮,页面出错

我设计的js禁止浏览器回退,在别的浏览器上可以,但在uc上失效

网页浏览历史

git 回退到某次提交

git rebase 操作失误回退到上一步