java清除浏览器记录_Javascript脚本之清除浏览器历史数据
簡介
在某些數據查詢頁面,點擊某條數據查看詳細信息,如果此時列表數據有更新(新增、修改、刪除等),當點擊瀏覽器的返回按鈕時,查看的數據仍然是舊的數據,原因是返回時,查看的是瀏覽器的緩沖數據,并不會從數據庫中重新查詢。為了解決這個問題,我研究出了一段可以避免這種臟數據的腳本,只需要在查詢頁面加入一段腳本即可。我將這段腳本寫在了一個nohistory.js的文件中,在查詢頁面引入即可實現實時最新數據。
JavaScript腳本代碼展示
/**
* 在引入該js文件時,可以傳遞model參數,表示刷新模式:
* strict或1:嚴格模式(默認值),所有點擊后退或前進按鈕的方式進入頁面都會刷新
* loose或0:寬松模式,只針對點擊某元素的方式離開頁面才會刷新
* 示例:
* 注:該插件只對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('');
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+=''"));
使用示例
瀏覽器返回、前進回到該頁面自動刷新...
總結
以上是生活随笔為你收集整理的java清除浏览器记录_Javascript脚本之清除浏览器历史数据的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 内部类 加载_举例讲解Java
- 下一篇: java sqlite mybatis_