首页 > 解决方案 > 查明最后一个站点是否与原点相同

问题描述

我在我的单页应用程序上使用自定义历史操作(使用history.pushState)。当用户按下浏览器本机后退按钮时,网站不会重新加载(因此不会显示正确的内容)。我通过侦听window.onpopstateId 刚刚重新运行启动脚本的事件来解决此问题。

然而,这会导致用户卡在我的页面上,因为当他试图返回时,我只是重新加载页面,忽略他想要访问的页面是否与我的页面相同。我想有点像这样:

window.onpopstate = () => {
  if (/*Site is same origin*/) load();
  else {
    //do Nothing
  }
};

我将如何处理这个?

标签: javascriptbrowser-history

解决方案


您可以使用 来解决此问题document.referrer,将其与您的域匹配,然后采取相应的措施。更多关于这在MDN


推荐阅读