js对浏览器返回事件的捕获及禁用功能
来源:互联网 发布:php商城框架 编辑:程序博客网 时间:2024/05/20 11:52
需求由来:
在做微信在线考试功能的时候,由于答题信息是通过ajax实时入库,所以要禁用浏览器的返回功能,或者监听返回事件,让其在返回时直接提交试卷。
监听浏览器返回事件:
<script>$(function(){pushHistory();//监听返回事件window.addEventListener("popstate", function(e) {//在此处理自己的业务}, false);});function pushHistory() {var state = {title: "title",url: "#"};window.history.pushState(state, "title", "#");}</script>
禁用浏览器返回事件:
history.pushState(null, null, document.URL); window.addEventListener('popstate', function () { history.pushState(null, null, document.URL);});对于代码不做过多解释,但是实际使用过程中会存在一些问题:
1,对于监听浏览器返回事件,其实这样的做法只能是当前页面是最后一个页面的时候有效,否则容易出现问题。假如有A->B->C三个页面的跳转顺序。假如在B页面中使用这种写法,相当于是在window.history中添加一个当前页面的空对象,在触发window.addEventListener("popstate",function())的时候,相当于是返回上一个页面,也就是自己本身。但是假如此时我从B页面跳到C页面,然后在C页面中进行返回操作,也就意味着history中的对象顺序改变,返回的不是B,而是一个#空页面,所以会报404.所以这个方法要慎用。
2,对于禁用浏览器返回事件的代码,其实跟第一个类似,但是它往history中存放的是当前页面本身,所以不会存在C页面返回上一页报404的问题。
阅读全文
0 0
- js对浏览器返回事件的捕获及禁用功能
- JS捕获关闭浏览器事件
- 解析:浏览器事件冒泡及事件捕获
- 运用Js 禁用浏览器后退返回
- js监听和禁用浏览器回车事件
- js禁用页面中退格键返回功能
- js 禁用浏览器后退功能,鼠标右键
- JS禁用浏览器的退格键
- mt-search的使用及事件捕获(vue.js)
- 怎么禁用Opera浏览器的自动更新功能
- PopupWindow无法捕获返回事件的解决方案
- js的事件冒泡和事件捕获
- js的事件冒泡和事件捕获
- JS的事件冒泡和事件捕获
- cocos2d-js:游戏进入后台和返回游戏的事件捕获和处理
- 页面禁用返回功能
- 禁用浏览器AutoComplete功能
- 捕获浏览器关闭事件
- Android性能优化之使用线程池处理异步任务
- 在QT中使用FFmpeg库
- 并发 并行 同步 异步 多线程的区别
- Centos 7 搭建Nginx , Docker (装rabbitMq,postgresql , gitlab镜像)
- 【安全牛学习笔记】基本工具-NETCAT(telnet/banner、传输文本信息)
- js对浏览器返回事件的捕获及禁用功能
- php jquery实现即点即改
- laravel中打印sql语句到日志中
- Hadoop入门之Hive的安装和连接
- oracle性能优化
- 51nod 1021 石子归并(区间dp 详细解释)
- 学单片机,到底在学什么?
- Python读取指定路径所有.txt文件,将文件名写入.txt
- 手动启动fabric例子marbles02