PC项目,领导提了一需求,关闭页面则退出登录,再打开页面需要重新登录,但如果是刷新,则不退出登录。个人查资料以及实践,没找到好的办法,想知道,究竟有没有办法区分刷新页面以及重新打开页面?
备注:暂不考虑浏览器兼容性。
PC项目,领导提了一需求,关闭页面则退出登录,再打开页面需要重新登录,但如果是刷新,则不退出登录。个人查资料以及实践,没找到好的办法,想知道,究竟有没有办法区分刷新页面以及重新打开页面?
备注:暂不考虑浏览器兼容性。
试试使用javascript的onbeforeunload()和onunload()两个事件来监听页面关闭和页面刷新。
页面加载时只执行onload
页面关闭时先执行onbeforeunload,最后onunload
页面刷新时先执行onbeforeunload,然后onunload,最后onload。
//页面关闭提示
window.onbeforeunload = function (event) {
var event = event || window.event;
if (event) {
event.returnValue = "确定要关闭窗口吗?";
}
return '确定要关闭窗口吗?';
}
但是
使用onunload或onbeforeunload可以监听浏览器关闭事件,但是无法区分关闭与刷新。
你可以看看这篇 js 监听浏览器刷新还是关闭事件
10 回答11.2k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
3 回答1.9k 阅读✓ 已解决
可以通过判断 window.performance.navigation.type 来判断.
type 为 0: 表示页面通过点击链接,书签和表单提交,或者脚本操作,或者在url中直接输入地址打开;
type 为 1: 表示页面通过点击刷新页面按钮或Location.reload()方法打开;
type 为 2: 表示页面通过历史记录和前进后退访问打开;
type 为 255: 表示页面通过其他方式打开。
参考链接:PerformanceNavigation