重点先下另外一个知识点:
当我们的Web站点采用主体页面的iframe导航各个子页面(浏览器地址保持不变)的情况,如果我们希望每次iframe中打开的新的子页面,也都能够像在不采用iframe的情况那样,后续能够在浏览器中点击后退或history.go(-1)那样进行回退和前进页面,我们只需要在进入主体页面时加上以下一句代码即可(不需要在每次加载进入子页面时添加,不然每一次都会添加成两条重复的历史记录):
history.pushState(null, '', window.location);
接下来,我们再说说标题所说的问题,如何判断页面是从刷新(重新加载)、正常打开(或链接打开)、还是从浏览器回退进入的?
过去可以直接使用以下方法,不过该方法利用的window.performance.navigation.type属性已经在新的标准中废弃,:
JS怎么判断页面是从前一个页面后退回来的 - 百度文库
可以参照以下该方法:
javascript - React - 如何检测页面刷新和重定向用户 - IT工具网
javascript - React - How to detect Page Refresh and Redirect user - Stack Overflow
参考资料:
https://developer.mozilla.org/en-US/docs/Web/API/PerformanceNavigationTiming/type
https://developer.mozilla.org/en-US/docs/Web/API/PerformanceNavigation/type
https://developer.mozilla.org/en-US/docs/Web/API/Performance
https://developer.mozilla.org/en-US/docs/Web/API/performance_property
https://developer.mozilla.org/zh-CN/docs/Web/API/performance_property