我在我的单页应用程序(使用history.pushState
)上使用自定义历史记录操作。当用户按下浏览器本机后退按钮时,站点不会重新加载(因此不显示正确的内容)。我通过监听window.onpopstate
事件来解决这个问题,其中Id只是重新运行启动脚本。
然而,这会导致用户卡在我的页面上,因为当他试图返回时我只是重新加载页面,如果他想要访问的页面与我的页面相同,则不予理会。我想有点像这样:
window.onpopstate = () => {
if (/*Site is same origin*/) load();
else {
//do Nothing
}
};
我该如何处理?
您可以使用document.referrer
进行处理,将其与您的域名匹配,然后相应地采取措施。有关这方面的更多信息,请访问MDN。