多页面网站禁用浏览器后退键

news/2024/4/29 2:23:04/文章来源:https://blog.csdn.net/weixin_33994444/article/details/88882813

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

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

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

<script>
$(document).ready(function(){//判断当前浏览器是否支持history和pushState,据我测试当前大部分浏览器都支持if(window.history && window.history.pushState){window.history.pushState({},null,location.href);}
});
</script>

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

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

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

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

;(function(window,undefined){'use strict'//判断当前浏览器是否支持history和pushState,据我测试当前大部分浏览器都支持if(window.history && window.history.pushState){window.onpopstate = function(){window.history.pushState({},null,"");//window.history.forward(1);  这句我没理解什么意思,不加也可以实现,所以注释掉了}}
})(window);

这时你发现,在你的目标页面上点击浏览器回退键页面不会跳转了,问题解决。但是上面的代码是什么意思呢?

window.onpopstate事件会监听浏览器的后退、前进按钮(或者在JavaScript代码中调用类似history.back()、history.forward()、history.go()方法),但是调用像 history.pushState() 或者history.replaceState() 不会触发popstate事件。

所以我们在全局中增加popstate监听事件,一但用户点击后退按钮时就会触发这个方法,该方法会再次向histroy中添加一个链接,防止用户再一次点击后退按钮。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_844990.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机组成位模式,Pentium的工作模式-计算机组成原理与汇编语言-电子发烧友网站...

7.4.1 实地址模式1. 实地址模式的进入在处理器复位后&#xff0c;处理器内部的CR0的PE位为0&#xff0c;表示此时处理器工作在实地址模式。同时&#xff0c;复位后的处理器的内部寄存器状态如表7.2所示。2. 实地址模式下段的概念在实地址模式下&#xff0c;段的概念与前面8088所…

他12岁,黑了学校网站

昨天在知乎上看了一个叫 Ret2Rttr 的小朋友分享文章&#xff0c;讲述了自己渗透自己学校网站的经历。 注意了&#xff0c;这可是位七年级 12 岁的小朋友&#xff0c;整个过程逻辑清晰&#xff0c;有理有据&#xff0c;相当有意思。 我 12 岁干啥来着&#xff1f;好像正偷偷拿…

keepalived+nginx+apache+mysql实现高可用、负载均衡的网站

说明&#xff1a;这次做了一个需要8台虚拟机的项目 其架构如下图 一、简介 keepalived是一个类似于layer3, 4 & 5交换机制的软件&#xff0c;也就是我们平时说的第3层、第4层和第5层交换。Keepalived是自动完成&#xff0c;不需人工干涉。Layer3,4,5工作在IP/TCP协议栈的IP…

Cors_test(批量测试网站是否存在CORS劫持)

该脚本用于批量测试是否存在CORS劫持&#xff0c;只有当Access-Control-Allow-Origin为baidu.com时才存在&#xff0c;否则需要在Access-Control-Allow-Origin域下才可劫持。 环境&#xff1a;Python3 使用&#xff1a;python3 cors_test.py url.txt 漏洞存在的会放入当前目录下…

分享12个非常好的免费矢量资源网站(转)

http://www.cnblogs.com/lhb25/archive/2011/04/08/2003802.html 在工作中&#xff0c;Web设计师经常需要到网上查找一些免费资源以更快更好的完成设计任务。这些资源都是到用时方恨少啊&#xff0c;所以今天本文与大家分享12个非常好的免费矢量资源网站&#xff0c;大家可收藏…

[转载]HTTP Caching 优化网站

HTTP Caching 用好了&#xff0c;可以极大的减小服务器负载和减少网络带宽。十分有必要深入了解下 http 的 caching 协议。 先来看下请求/响应过程&#xff1a; http 请求/响应 1、用 Last-Modified 头 在第一次请求的响应头返回 Last-Modified 内容&#xff0c;时间格式如&…

在一个电商网站里面如何修改商品状态大致思路

在一个电商网站里面想要修改商品的状态&#xff0c;需要做以下的步骤&#xff1a; 1.在相关JSP页面中执行$.get方法&#xff0c;把三个参数传进去&#xff0c;一个是地址&#xff0c;一个是id&#xff0c;最后一个是回调方法&#xff0c;写完后再去Controller页面&#xff0c;这…

电商网站需要了解的SPU,SKU之间的关系,以及需要编写商品品类,商品参数组,商品参数表之间的关系和业务逻辑

什么是SPU&#xff1f;什么是SKU&#xff1f; 我们做电商网站有两个概念&#xff0c;特别要清楚&#xff0c;就是商品规格参数里面的SPU和SKU。为什么要熟悉这两个呢&#xff1f;因为商品的种类繁多&#xff0c;我们要去储存商品信息的话&#xff0c;就需要用商品数据结构方法…

多个项目如何往不同的git网站提交代码

背景:工作和自用的git地址可能是不一样的&#xff0c;这样我们需要配置一下&#xff0c;以达到不同项目往不同git网址的仓库提交代码的能力 1、生成密钥 首先要做的就是取配置两个不同的sshkey(生成两种不同的密钥文件) ##工作用的git账号邮箱地址 $ ssh-keygen -t rsa -C x…

网站视频下载及按帧转为jpg

网站视频下载及按帧转为jpg 1、准备切割视频 切割 clc; clear; %读取视频 video_file‘D:\1.mp4’; objVideoReader(video_file); frame_numobj.NumberOfFrames;%一共有多少帧 % 分离图片 for i1:15%读取前15帧 imgstrcat(‘D:\picture’,num2str(i)); imgstrcat(img,’.jpg’…

如何优雅的制作表白网站和罗盘时钟

如何优雅的制作表白网站和罗盘时钟前言 GitHub 是一个面向开源及私有软件项目的托管平台&#xff0c;因为只支持 Git 作为唯一的版本库格式进行托管&#xff0c;故名 GitHub。 GitHub 于 2008 年 4 月 10 日正式上线&#xff0c;除了 Git 代码仓库托管及基本的 Web 管理界面以…

lol服务器维护是拳头,问拳头-英雄联盟官方网站-腾讯游戏

欢迎来到问拳头专栏。在此我们将针对各位所提出的问题进行解答。本周我们将聊到Reddit&#xff0c;4K以及召唤师技能。大家将在下方看到三个现成问题和回复&#xff0c;并且每周都会有全新的问题得到我们的答复。大家可以随意在评论当中联系我们。每位解答问题的Rioter都会尽其…

mtk有关的不错网站

http://blog.sina.com.cn/mtkshanghai MTK http://blog.sina.com.cn/shanghaimtk

【实战案例】——实战渗透某不法网站

作者名&#xff1a;Demo不是emo 主页面链接&#xff1a;主页传送门 创作初心&#xff1a;舞台再大&#xff0c;你不上台&#xff0c;永远是观众&#xff0c;没人会关心你努不努力&#xff0c;摔的痛不痛&#xff0c;他们只会看你最后站在什么位置&#xff0c;然后羡慕或鄙夷座…

什么是域名?什么网站名?什么是URL

域名 通常有一串字符和后缀组成&#xff0c;常见的后缀有&#xff0c;com&#xff0c;net&#xff0c;cn&#xff0c;相对于ip或者别名地址来说&#xff0c;域名更好记&#xff0c;机器世界根据IP地址来定位主机&#xff0c;访问网页等资源 但是记住域名是不包括www滴&#x…

从单机至亿级流量大型网站系统架构的演进过程介绍

阶段一、单机构建网站 网站的初期&#xff0c;经常会在单机上跑所有的程序和软件。此时使用一个容器&#xff0c;如tomcat、jetty、jboos&#xff0c;然后直接使用JSP/servlet技术&#xff0c;或者使用一些开源的框架如mavenspringstructhibernate、mavenspringspringmvcmybat…

使用selenium爬取某出试卷的网站

from selenium import webdriver import pymongo import json import time import re # 使用终极武器了.# 修改头文件&#xff0c;防止被识别为爬虫 from selenium.webdriver.common.desired_capabilities import DesiredCapabilitiesclass Zujuan(object):def __init__(self):…

使用python3登陆12306网站

一、一些用到的技术1.1解析验证码&#xff08;联众-收费&#xff0c;两分钱一个&#xff09;验证码识别设计机器学习&#xff0c;没有耗费时间去实现&#xff0c;所以采用了第三方&#xff08;联众&#xff09;的在线打码&#xff0c;注册充值便可使用&#xff0c;识别率挺高的…

如何突破网站对selenium的屏蔽

使用selenium模拟浏览器进行数据抓取无疑是当下最通用的数据采集方案&#xff0c;它通吃各种数据加载方式&#xff0c;能够绕过客户JS加密&#xff0c;绕过爬虫检测&#xff0c;绕过签名机制。它的应用&#xff0c;使得许多网站的反采集策略形同虚设。由于selenium不会在HTTP请…

免费图床网站推荐

免费图床网站推荐 聚合图床-推荐使用 官网地址&#xff1a;https://www.superbed.cn 简介&#xff1a;将图片分发到多处备份&#xff0c;借助其本身的CDN加速功能&#xff0c;节省服务器流量&#xff0c;并且不用担心图片被删除&#xff0c;即便其中某几个图床上的图片被删除…