这里所有相关判断都是pc端的,移动端另寻出路
页面离开事件触发多种多样比较常见有onunload,onbeforeunload,pagehide
但是怎么判断是离开还是刷新还是没有解决。。。
- 当前tab不关闭通过链接离开当前页面进入其他页面,
可以通过history的长度来进行判断是刷新页面还是重新进入,这种判断方法应该始于onload类似事件或类是生命周期结合的
if(localStorage.getItem('history')!=history.length){
localStorage.setItem('history',history.length);
alert('页面是从新进入');
} else{
alert('页面刷新');
}
2.怎么判断页面的离开和和关闭,只需要onunload,onbeforeunload就能简单的实现,但是这两个事件在刷新页面时同样会触发这一点需要注意
window.onunload = function(){
alert('页面离开或刷新');
}
注意:两端代码作用时机不一样,判断页面刷新是为了处理页面进入时需要做那些准备工作,离开是清理页面遗留的存储的工作
更多参考 阮一峰Page Visibility API 教程
页面自动刷新1次
$(function () {
if(!sessionStorage.getItem('isreflash')){
location.reload(true);
sessionStorage.setItem("isreflash", "1");
}
else{
sessionStorage.removeItem('isreflash');
}
})