当有人试图刷新页面时,我想检查一下。
例如,当我打开一个页面什么都没有发生,但当我刷新页面时,它应该显示一个警告。
当有人试图刷新页面时,我想检查一下。
例如,当我打开一个页面什么都没有发生,但当我刷新页面时,它应该显示一个警告。
当前回答
⚠️⚠️⚠️window.performance.navigation.type已弃用。请看Илья Зеленько的回答。
了解页面是否实际被重新加载的更好方法是使用大多数现代浏览器支持的导航器对象。
它使用导航计时API。
//检查导航定时API支持 If (window.performance) { Console.info ("window.performance works fine on this browser"); } console.info (performance.navigation.type); 如果(performance.navigation。type == performance.navigation.TYPE_RELOAD) { console.info("此页面已重新加载"); }其他{ console.info("此页面未重新加载"); }
来源:导航定时API
其他回答
在有人第一次访问该页面时存储一个cookie。刷新时检查你的cookie是否存在,如果存在,提醒。
function checkFirstVisit() {
if(document.cookie.indexOf('mycookie')==-1) {
// The cookie doesn't exist. Create it now
document.cookie = 'mycookie=1';
}
else {
// Not the first visit, so alert
alert('You refreshed!');
}
}
在你的body标签中:
<body onload="checkFirstVisit()">
⚠️⚠️⚠️window.performance.navigation.type已弃用。请看Илья Зеленько的回答。
了解页面是否实际被重新加载的更好方法是使用大多数现代浏览器支持的导航器对象。
它使用导航计时API。
//检查导航定时API支持 If (window.performance) { Console.info ("window.performance works fine on this browser"); } console.info (performance.navigation.type); 如果(performance.navigation。type == performance.navigation.TYPE_RELOAD) { console.info("此页面已重新加载"); }其他{ console.info("此页面未重新加载"); }
来源:导航定时API
<script>
var currpage = window.location.href;
var lasturl = sessionStorage.getItem("last_url");
if(lasturl == null || lasturl.length === 0 || currpage !== lasturl ){
sessionStorage.setItem("last_url", currpage);
alert("New page loaded");
}else{
alert("Refreshed Page");
}
</script>
下面是一个几乎所有浏览器都支持的方法:
if (sessionStorage.getItem('reloaded') != null) {
console.log('page was reloaded');
} else {
console.log('page was not reloaded');
}
sessionStorage.setItem('reloaded', 'yes'); // could be anything
它使用SessionStorage来检查页面是第一次打开还是刷新。
if(sessionStorage.reload) {
sessionStorage.reload = true;
// optionnal
setTimeout( () => { sessionStorage.setItem('reload', false) }, 2000);
} else {
sessionStorage.setItem('reload', false);
}