美文网首页
关于禁止页面后退的一些方法

关于禁止页面后退的一些方法

作者: 一现_ | 来源:发表于2018-07-19 10:50 被阅读0次

最近在项目中遇到登录页面进行跳转到主页,退出登录跳转到登录界面等,发现浏览器默认的后退按钮很是蛋疼,因为项目上是尽量前端去保存用户状态,没有后台进行session校验,故跳转的时候要注意的是后退按钮的禁用,找了几种方法,感觉不错,分享出来。

①在IE9及其以上,各种主流浏览器上
使用浏览器history这个api,HTML5中新引入的pushState()和 replaceState()方法则是首选。 由于两者作用差不多,只讲其中一种pushState()
使用方法:history.pushState(stateObject,title,URL)
pushState是一个历史记录的管理的方法,其中stateObject是一个对象,存储于这条历史相关的状态信息,通常写为null即可,title取标题,也取null,URL是URL的历史记录的意思,即给这个窗口的历史记录添加一个URL,并不是会页面进行跳转的意思。具体使用如下:


image.png

之后动态去监控popstate的后退或者前进内容,触发的时候调用history.pushState(stateObject,title,URL),那么做到用户后退时一直进去的是我们添加的那个历史记录里。

②IE9以下的低版本浏览器
这类浏览器没有pushState()方法,也做不到动态监控popstate的内容了,此时的浏览器只有hash哈希地址的变化的监控(浏览器的url后用#接地址来完成页面变化的方式),此时操控浏览器的历史通过window.location.hash来完成,具体如下


image.png

在一开始的时候固定一个哈希,在浏览器的后退或前进时url发生改变时,那么利用window.onhashchange事件监听变化,再进行固定即可。

经过以上两种方法,可以解决禁用后退功能按钮的问题

个人项目上使用第一种


image.png

相关文章

  • 关于禁止页面后退的一些方法

    最近在项目中遇到登录页面进行跳转到主页,退出登录跳转到登录界面等,发现浏览器默认的后退按钮很是蛋疼,因为项目上是尽...

  • 禁止浏览器页面的前进和后退的方式

    禁止浏览器页面的前进和后退的方式: 1.禁止浏览器页面的前进和后退(包括 键盘、鼠标手势等产生的后退动作。) ...

  • js 禁止浏览器 后退 动作

    在开发的时候,有个别时候需要 禁止浏览器的后退动作,js可以用以下方法实现: 但是禁止浏览器的后退动作,会导致用户...

  • Html5 页面后退并刷新

    javascript做页面后退常使用的方法是 window.history.back(); 如果需要在后退的同时,...

  • 通过js跳转不希望有历史记录

    有同学在做退出功能,清除token 跳回登录页面后 不希望能通过 后退按钮 看到之前的页面。 方法:使用 loca...

  • 栈:实现浏览器的前进后退功能

    浏览器的前进、后退功能:依次访问A、B、C页面,然后点击浏览器的后退功能可以依次查看B、A两个页面,当你后退到页面...

  • JS防止页面后退

    防止页面后退,包括 键盘、鼠标手势等产生的后退动作。

  • vue编程式导航

    导航是根据历史记录栈来进行前进后退页面的匹配 methodes:{方法(){this.route.replace(...

  • vue页面实现前进刷新,后退不刷新

    背景 业务需求,实现跳转进页面的时候重新加载页面,后退的时候保持缓存。搜索了很多的回答,大概有几种方法:1、kee...

  • 页面调试

    关于移动端的一些调试方法 方法一在页面选择手机模式,选择相应机型,进行调试image.png 方法二http-se...

网友评论

      本文标题:关于禁止页面后退的一些方法

      本文链接:https://www.haomeiwen.com/subject/cpizpftx.html