如标题所说,本文提供的方法适用于多页面网站,如SPA单页面应用等不适用。

利用window.onpopstate和window.history.pushState 控制浏览器后退键失效,下面说一下如何实现。

1.在你需要禁止浏览器后退键的页面上加上下面的代码:

$(document).ready(function(){

//判断当前浏览器是否支持history和pushState,据我测试当前大部分浏览器都支持

if(window.history && window.history.pushState){

window.history.pushState({},null,location.href);

}

});

当你加上上面的代码时,你发现当你点击一次浏览器的后退键,页面并没有后退,你可能感觉好像是解决问题了,但是当你再次点击后退键时页面还是返回到上一页面。

原因是window.history.pushState()方法是向浏览器历史添加了一个状态,它有三个参数分别是,一个状态对象(其实就是页面的参数),一个标题(现在被忽略了),以及一个可选的URL地址。

当你在页面上写了window.history.pushState({},null,location.href);浏览器会在history中添加location.href,同时页面并不跳转,但你只加了一次,所以只对一次后退事件起作用。如何彻底解决这个问题呢?还需要在全局增加onpopstate事件,详情请看第2步。

2.在全局增加一个onpopstate事件,这里我用的是匿名函数(当然也可以直接写):

;(

html页面禁止返回代码,多页面网站禁用浏览器后退键相关推荐

  1. Html5禁止浏览器后退,多页面网站禁用浏览器后退键

    如标题友,记基开前不接些前家我告对猿果水使钮控所说,本文提供的方法适用于多页面网站,如SPA单页面应朋支不器几事为的时后级功发发来久都这样含制层是请些间例业多在上屏屏有到随用等不适用. 利用w不的期是 ...

  2. 手机浏览器利用js实现 禁用浏览器后退

    利用js实现 禁用浏览器后退 现在很多的内部系统,一些界面,都是用户手动点击退出按钮的.但是为了避免,用户误操作 点击浏览器后退,或者用鼠标手势后退什么的.容易出现误操作. 所以在有些页面上,适当的禁 ...

  3. php微信浏览器自带后退功能禁用,jquery如何实现禁用浏览器后退

    jquery实现禁用浏览器后退的方法:首先打开相应的js文件:然后通过"jQuery(document).ready(function () {...}"方法禁用浏览器的back和 ...

  4. JS禁止浏览器后退键

    背景说明: 今天项目测试中,同事发现一个Bug,当键盘敲下后退键(Backspace)后,浏览器自动后退,不符合需求,故建议禁止浏览器后退键. 提出需求: 当键盘敲下后退键(Backspace)后 1 ...

  5. vue中使用,js禁用浏览器后退按钮

    * js禁用浏览器后退按钮 * vue中使用*/ methods:{goBack(){history.pushState(null,null,document.URL);}, } destroyed( ...

  6. java 禁止缓存_JavaWeb如何实现禁用浏览器缓存

    这篇文章主要介绍了JavaWeb如何实现禁用浏览器缓存,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一.禁用浏览器缓存可以通过设置响应头的方式,有 ...

  7. javascript怎么禁用浏览器后退按钮

    1. 复制代码 代码如下: <script language="JavaScript"> javascript:window.history.forward(1); & ...

  8. 利用JavaScript实现禁用浏览器后退

    最近做需求时出现的问题: 点击"意向国家和地区"对应的"请选择",出现一个弹框,这个弹框可以选择国家和地区的弹框,弹框占据了一整个页面,当用户不想选择也就是不点 ...

  9. JavaScript禁用浏览器后退按钮

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 开发工具与关键技术:vs20 ...

最新文章

  1. dispatch js实现_详解vuex中action何时完成以及如何正确调用dispatch的思考
  2. 架构设计:生产者/消费者模式 第6页:环形缓冲区的实现
  3. python项目实战:20行代码画一朵好看又有趣的小花花
  4. Linux下启动和关闭Oracle数据库的方法
  5. MySQL-索引优化篇(4)_索引的维护
  6. Qt for ios 设置程序显示名称
  7. 三十二楼层选几层最好_32层的房子买几楼好
  8. 【转】 CPU、MCU、MPU、DSP的区别和介绍
  9. android input出现一个多余文本窗口 解决办法
  10. 用python计算绩点的代码_【Python】计算GPA
  11. java读取日志_Java实时监控日志文件并输出的方法详解
  12. 控制led闪烁次数_单片机驱动LED灯的进阶之路
  13. Python(二十):迭代器、生成器
  14. 菜刀之中国蚁剑-安装使用及下载地址
  15. 明尼苏达双城计算机科学硕士申请截止日期,明尼苏达大学双城分校计算机科学理学硕士研究生申请要求及申请材料要求清单...
  16. Unity3D中玻璃、金属材质制作
  17. 把redis部署到百度BAE上时的注意点
  18. C++ opencv 识别火焰 (代码)
  19. 未来的计算机作文六百字,未来想象作文六百字
  20. Linux云计算薪资及发展前景,云计算Linux就业方向及前景分析 2019云计算行业发展现状及前景趋势分析...

热门文章

  1. 微信小程序浅谈(二)关于调用外部接口
  2. heic图片格式转换工具
  3. iOS测试软件砸壳,iOS应用砸壳
  4. 大数据分析抖音养号是否有用?(抖音运营)
  5. 计算机突飞猛进发展的一段,形容技术上突飞猛进的句子
  6. js实现同学互评(学校版)
  7. 线性代数——矩阵解释平移、旋转、缩放等
  8. 088:vue+openlayers实时显示单个卫星的位置及轨迹 (示例代码)
  9. 【Python】第四篇:Bug——程序员的一生之敌,先别急着写Bug,快来学学怎么在Python中调教它
  10. 5款受用一生的自学网站,每天坚持一小步,成功一大步!