javascritp如何判断是从刷新(重新加载)、正常打开(或链接打开)、还是从浏览器回退进入页面的?同时介绍如何让iframe子页面可以在浏览器中历史回退和前进

重点先下另外一个知识点

当我们的Web站点采用主体页面的iframe导航各个子页面(浏览器地址保持不变)的情况,如果我们希望每次iframe中打开的新的子页面,也都能够像在不采用iframe的情况那样,后续能够在浏览器中点击后退或history.go(-1)那样进行回退和前进页面,我们只需要在进入主体页面时加上以下一句代码即可(不需要在每次加载进入子页面时添加,不然每一次都会添加成两条重复的历史记录):

history.pushState(null, '', window.location);

javascritp如何判断是从刷新(重新加载)、正常打开(或链接打开)、还是从浏览器回退进入页面的?同时介绍如何让iframe子页面可以在浏览器中历史回退和前进_第1张图片

更复杂的情况可以参考本人之后转载的另一篇文章:点击iframe中的链接时,使用历史记录pushState更改父窗口的URL-CSDN博客

嵌入 iframe 的页面 history 流程(浏览器后退)

https://www.jianshu.com/p/4c7eb9534677/

 关于popState事件:

摘自:https://www.cnblogs.com/NaN-prototype/p/14308503.html

javascritp如何判断是从刷新(重新加载)、正常打开(或链接打开)、还是从浏览器回退进入页面的?同时介绍如何让iframe子页面可以在浏览器中历史回退和前进_第2张图片

接下来,我们再说说标题所说的问题,如何判断页面是从刷新(重新加载)、正常打开(或链接打开)、还是从浏览器回退进入的?

过去可以直接使用以下方法,不过该方法利用的window.performance.navigation.type属性已经在新的标准中废弃,:

JS怎么判断页面是从前一个页面后退回来的 - 百度文库

javascritp如何判断是从刷新(重新加载)、正常打开(或链接打开)、还是从浏览器回退进入页面的?同时介绍如何让iframe子页面可以在浏览器中历史回退和前进_第3张图片

可以参照以下该方法:

javascript - React - 如何检测页面刷新和重定向用户 - IT工具网

javascript - React - How to detect Page Refresh and Redirect user - Stack Overflow

javascritp如何判断是从刷新(重新加载)、正常打开(或链接打开)、还是从浏览器回退进入页面的?同时介绍如何让iframe子页面可以在浏览器中历史回退和前进_第4张图片

参考资料:

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

javascritp如何判断是从刷新(重新加载)、正常打开(或链接打开)、还是从浏览器回退进入页面的?同时介绍如何让iframe子页面可以在浏览器中历史回退和前进_第5张图片

javascritp如何判断是从刷新(重新加载)、正常打开(或链接打开)、还是从浏览器回退进入页面的?同时介绍如何让iframe子页面可以在浏览器中历史回退和前进_第6张图片

你可能感兴趣的:(Javascript,javascript,判断历史回退记录,popState,iframe加入history)