您好我想在javascript中单独检测浏览器刷新。下面的代码使用的是检测浏览器关闭以及刷新,返回等。
window.onbeforeunload = function (evt) {
var message = 'Are you sure you want to leave?';
console.log(evt);
console.log(window.event);
console.log(event);
if (typeof evt == 'undefined') {
evt = window.event;
}
if (evt) {
evt.returnValue = message;
}
return evt;
}
答案 0 :(得分:1)
您可以将当前时间从onbeforeunload
保存到会话存储,然后当页面加载时会在会话存储中查找一段时间,如果您找到一个并且它在(例如)几个内秒,假设它刷新。
window.onbeforeunload = function() {
sessionStorage.setItem("left", Date.now());
};
和其他地方,在页面加载时运行的代码:
var left = sessionStorage.getItem("left");
if (left && (Date.now() - left) < 2000) {
// Refreshed
}
完整示例(live copy):
(function() {
"use strict";
window.onbeforeunload = function() {
sessionStorage.setItem("left", Date.now());
};
var left = sessionStorage.getItem("left");
if (left && (Date.now() - left) < 2000) {
// Refreshed
display("Refreshed");
} else {
// Freshly loaded
}
})();