Javascript脚本之清除浏览器历史数据

onetab 谷歌插件历史数据清除 onetab历史网页清空 阅读详情

简介

在某些数据查询页面,点击某条数据查看详细信息,如果此时列表数据有更新(新增、修改、删除等),当点击浏览器的返回按钮时,查看的数据仍然是旧的数据,原因是返回时,查看的是浏览器的缓冲数据,并不会从数据库中重新查询。为了解决这个问题,我研究出了一段可以避免这种脏数据的脚本,只需要在查询页面加入一段脚本即可。我将这段脚本写在了一个nohistory.js的文件中,在查询页面引入即可实现实时最新数据。

JavaScript脚本代码展示

/**

* 在引入该js文件时,可以传递model参数,表示刷新模式:

* strict或1:严格模式(默认值),所有点击后退或前进按钮的方式进入页面都会刷新

* loose或0:宽松模式,只针对点击某元素的方式离开页面才会刷新

* 示例:<script src="nohistory.js?model=0"></script>

* 注:该插件只对get(查询)请求方式有效!

*/

(function(id, refresh) {

var hisgory = performance.navigation.type === 2,

scripts = document.scripts,

src = scripts[scripts.length - 1].src,

// 宽松模式检测

loose = /model\s*=\s*(?:loose|0)/.test(src);

if (loose) {

document.write('<input type="hidden" id="' + id + '" autocomplete="on" />');

var element = document.getElementById(id);

function addEvent(e, type, fn) {

typetype = type.toLowerCase().replace(/^on/, "");

if (e.addEventListener) {

e.addEventListener(type, fn);

} else if (e.attachEvent) {

e.attachEvent("on" + type, fn);

} else {

e["on" + type] = fn; // IE5

}

}

 

function removeEvent(e, type, fn) {

typetype = type.toLowerCase().replace(/^on/, "");

if (e.removeEventListener) {

e.removeEventListener(type, fn);

} else if (e.detachEvent) {

e.detachEvent("on" + type, fn);

} else {

e["on" + type] = null; // IE5

}

}

 

function mark() {

element.value = "1";

}

 

var binded = false;

addEvent(window, "mousedown", function() {

if (!binded) {

binded = true;

addEvent(window, "beforeunload", mark);

}

});

 

addEvent(window, "mouseout", function(e) {

ee = e || window.event;

var tagName = e.target.tagName;

if (binded && (tagName == "BODY" || tagName == "HTML")) {

binded = false;

removeEvent(window, "beforeunload", mark);

}

});

 

// 排除“F5”和“Ctrl+R”刷新

addEvent(document, "keydown", function(e) {

ee = e || window.event;

if (e.keyCode == 116 || e.ctrlKey && e.keyCode == 82) {

removeEvent(window, "beforeunload", mark);

}

});

 

// Compatible IE

addEvent(document, "readystatechange", function() {

if (document.readyState === "complete" && element.value && hisgory) {

refresh();

}

});

} else if (hisgory) {

refresh();

}

})("nohistory_v2.0, code by chenqi@1000phone.com in 2017.12.07", new Function("location+=''"));

使用示例

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

 

<html xmlns="http://www.w3.org/1999/xhtml">

 

<head>

 

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

 

<title>浏览器返回、前进回到该页面自动刷新</title>

 

<script type="text/javascript" src="js/nohistory.js"></script>

 

</head>

 

<body>

 

...

 

</body>

 

</html>


 

原生js实现 搜索框 点击搜索 清空历史记录 阅读详情

相关推荐

Vue Router 删除浏览器历史记录

在某些情况下,我们可能需要从浏览器的历史记录中删除一条或多条记录。然后,我们创建了一个新的 VueRouter 实例,并在其中配置了路由信息。方法只能删除当前路由之后的历史记录,而无法删除当前路由之前的记录。这将替换当前路由,并且不会在浏览器的历史记录中创建新的记录。该方法会替换当前路由,并且不会在浏览器的历史记录中创建新的记录。总结一下,要在 Vue Router 中删除浏览器历史记录,我们可以使用。这将立即替换当前的路由,并且浏览器的历史记录中不会创建新的记录。方法,并传入新的路由路径,例如。

EadDeveloper的博客 1890

JS删除上一条浏览器历史记录的方法(登录回退)

history不支持删除历史记录的方法,当从当前页面跳转到下一个页面的时候可以用。方法,用新的文档替换当前文档就相当于删除了当前页面的历史记录。

chenhongcancan的博客 3430

CentOS 7下glibc升级到2.28的保姆级避坑指南(含GCC 7.3.1编译配置)

本文详细介绍了在CentOS 7系统中将glibc升级到2.28版本的完整流程,包括GCC 7.3.1的编译配置、环境变量设置、glibc编译的细节处理以及生产环境验证。文章特别强调了风险控制和避坑技巧,适用于需要提升系统兼容性的企业级用户。

weixin_29611239的博客 408

JS使用window.location.replace删除上一条浏览器历史记录的方法(登录回退)

如果用户登录状态过期,或者没有登录,当用户登录之后回退上一个页面的时候,就会回退到登录页面,这样的体验不是很好。`history`不支持删除历史记录的方法,当从当前页面跳转到下一个页面的时候可以用以下方法,用新的文档替换当前文档就相当于删除了当前页面的历史记录。本人每篇文章都是一字一句码出来,希望对大家有所帮助,多提提意见。

小马甲 4363

superpowers-中文使用说明

《obra/superpowers:AI辅助开发的流程纪律工具集》 摘要:obra/superpowers是一套面向AI辅助软件开发的系统化流程规范,包含14个核心技能,强调"先理解后行动"的纪律性开发方法。该工具集定义了从头脑风暴到代码评审的完整工作流,要求严格遵循测试驱动开发、子代理隔离执行等原则。核心特色包括:1) 任何实现前必须完成设计和评审;2) 采用红-绿-重构的TDD循环;3) 复杂任务通过独立子代理串行处理;4) 所有产出需经过双重验证(规格合规+代码质量)。该工具集特别注重文档化和可验证性

qq_22786633的博客 765

拉普拉斯矩阵

1、预备知识 拉普拉斯矩阵定义为:L=D-W。其中,D为度矩阵,W为权重矩阵。 (1)D是对角矩阵,对角线上的元素时节点的度,即所有与该节点相关联的边的权重之和;对角线以外的元素为0。有向图的对角矩阵分为 出度矩阵 和 入度矩阵。 图1.1 无向图中的度矩阵 (2)W在无向图中是对称矩阵,在有向图中是非对称矩阵。 ...

zzhe 1万+

java清除浏览器记录_Javascript脚本之清除浏览器历史数据

简介在某些数据查询页面,点击某条数据查看详细信息,如果此时列表数据有更新(新增、修改、删除等),当点击浏览器的返回按钮时,查看的数据仍然是旧的数据,原因是返回时,查看的是浏览器的缓冲数据,并不会从数据库中重新查询。为了解决这个问题,我研究出了一段可以避免这种脏数据的脚本,只需要在查询页面加入一段脚本即可。我将这段脚本写在了一个nohistory.js的文件中,在查询页面引入即可实现实时最新数据。J...

weixin_30253289的博客 518

FPGA领域四大顶级会议全景解读:从架构到应用的技术风向标

本文全景解读FPGA领域四大顶级会议(FPGA、FCCM、FPL、FPT),剖析其各自定位与技术风向。FPGA会议聚焦架构与工具创新,FCCM专攻硬件加速与定制计算,FPL覆盖从理论到应用的广泛领域,FPT则重点关注亚太市场与前沿应用。跟踪这些会议是把握FPGA技术演进、寻找创新灵感和应用方案的高效途径。

weixin_29274969的博客 335

清除浏览器缓存(js、css等)

有时候写web项目,改了js或者css文件,但是浏览器就是不刷新,就很头疼o(╥﹏╥)o。那是因为浏览器还有缓存存在的原因,下面来看如何清除缓存。 1.找到目标网页,鼠标右击,点击检查;或者Ctrl+Shift+i;进入检查界面(我用的是谷歌浏览器)。 2.点击Network,然后选择要清除什么文件(js、css等等)的缓存,当然也可以选择All,这样就全部加载出来了 3.如果没有东西出来,就刷新一次网页,然后找到你的目标文件,右击,选择Clear browser cashe清..

m0_57512160的博客 7143

基于STM32、HAL库的TPL0501数字电位器驱动程序设计

@param value 输出值(0-255)* @param hdev TPL0501句柄。* @param hdev TPL0501句柄。* @brief 获取TPL0501当前设置值。* @param hdev TPL0501句柄。* @brief 获取TPL0501当前设置值。* @brief 设置TPL0501输出值。* @brief 设置TPL0501输出值。* @return 当前值(0-255)* @brief 初始化TPL0501。* @brief 初始化TPL0501。

corlin6688的博客 1026

数学工具箱:Clarke与Park变换

本文详细解析了FOC(磁场定向控制)中的核心数学工具——Clarke变换与Park变换。首先阐述了坐标变换的必要性:将复杂的三相交流系统简化为直流系统,便于精确控制。Clarke变换将三相静止坐标系转换为两相静止坐标系,减少变量数量;Park变换进一步将两相静止坐标系转换为两相旋转坐标系,实现交流量到直流量的转换。文章提供了两种变换的数学公式、物理意义图解及C语言实现代码,并简要介绍了逆变换过程。这些变换为电机控制提供了关键的数学基础,后续将结合GD32F303的FPU特性进行优化实现。

汽车电子软件领域知识分享 180

js清除浏览器缓存的几种方法

一、CSS和JS为什么带参数(形如.css?t=与.js?t=)怎样获取代码 css和js带参数(形如.css?t=与.js?t=) 使用参数有两种可能: 第一、脚本并不存在,而是服务端动态生成的,因此带了个版本号,以示区别。 即上面代码对于文件来说 等价于 但浏览器会认为他是 该文件的某个版本! 第二、客户端会缓存这些css或js文件,因此每次升级了js或css文件后,改变版本号,客户端...

dxyzhbb的博客 926

Isaac Sim/Lab & ROS2 入门教程 —— 宇树人形机器人 H1 强化学习策略部署

本文介绍了如何通过ROS2和IsaacSim运行H1人形机器人的强化学习运动策略。主要内容包括:1)设置机器人关节配置和初始位置;2)添加IMU传感器;3)配置ROS2节点以发布观测数据和接收动作指令;4)创建模拟环境并发布ROS时钟;5)最终运行ROS2策略实现对机器人的键盘控制。文中详细说明了关节参数设置、传感器配置、ROS2节点创建等关键步骤,并提供了注意事项和验证方法。完成配置后,用户可通过键盘指令控制机器人在平坦地形上的运动。

2506_90492529的博客 2170

ajax请求时清除浏览器缓存,js清除浏览器缓存的几种方法

JS 缓存的问题一直都是我们又爱又恨的东西。也是我们比较头痛的问题, 一方面为了提高网站响应速度,减少服务器的负担,和节省带宽,将需要将静态资源缓存在客户端, 但是另一方面,当 js 文件有改动的时候,如何快速的将客户端缓存的 js 文件都失效,这是非常头痛的问题。 以至于每次客户反馈问题的时候,我们第一个解决办法都是清理浏览器缓存。一、使用参数第一、脚本并不存在,而是服务端动态生成的,因此带了个...

weixin_32258691的博客 1463

解决Qt字体问题:QFontDatabase: Cannot find font directory xx/lib/fonts

1.直接在main函数里设置app的整体字体库.这个错误提示比较明显的就是字体库缺失。

有问题或资源连接有缺失的可以私信公众号新潮看世界获取 3044

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

在javascript中清除localStorage?

有没有办法在javascript中重置/清除浏览器的localStorage?

w36680130的博客 1万+

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

js清空浏览器cokie缓存_JS:要关闭浏览器,就清除缓存的数据?比如清除登录数据...

进入我的主页,查看更多JS的分享!我的代码有多短,本篇内容就有多短!本地存储对比:sessionStorage,关闭窗口就被清除;localStorage,一直存在直到手动删除;cookie,设置有效期,可以直接实现标题的需求今天不想多说话,直接贴上代码://判断是否支持 比如浏览器开启了隐私模式var isCookie = () = >{return navigator.cookieEna...

weixin_31063029的博客 463

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Chrome浏览器清除页面js文件缓存的方法

Chrome浏览器清除js缓存方法虽然简单,但有些人还是不太会,有些人会去设置里面清除有时候没有用,这里写一下简单步骤,使用一次以后就会了,而且速度更快按F12调出开发模式框勾选 Network标签下 Disable cache选项(如果之前已勾选直接下一步)按F5或右键“重新加载”刷新页面内容(此时本页面相关js缓存已清除)再按F12隐藏开发模式框就ok了。 为什么要调出开发模式,因为官方对于

真爱无限的优快云博客 7万+

JS | 使用JS清除 cookie 的方法有哪些?

在现代Web开发中,清除Cookie是维护网站用户隐私和安全性的一个重要步骤。JavaScript提供了几种方法来清除Cookie,包括直接删除特定的Cookie、设置Cookie的过期时间为过去的时间点、以及使用第三方库来辅助清除。在这些方法中,最为直接且常用的技术就是通过设置Cookie的过期时间为过去的时间点来“删除”它。

青春木鱼的博客 3854

js 监听浏览器tab关闭,清除缓存数据。

通常,我们会在浏览器中缓存一些数据。保存用户的部分信息或者一些其他信息。当关闭tab的时候我们希望清除这些数据。 解决:主要是两个方法,onunload,和 onbeforeunload 但是直接关闭浏览器,该方法无法无用(客户端操作无法监听) var _beforeUnload_time = 0; var _gap_time = 0; window.onunload = function() { _gap_time = new Date().getTime() - _

ZFZ5720 2416
上一篇: Java和移动端交互
下一篇: CKEditor的使用
千锋-陈.Mr
博客等级 码龄8年 50粉丝 224原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值