查明最后一个站点是否与原点相同

find out if last site was same as origin

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

然而,这会导致用户卡在我的页面上,因为当他试图返回时,我只是重新加载页面,而不管他想去的页面是否与我的页面来源相同。我想要这样:

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

我该如何处理?

您可以使用 document.referrer 解决此问题,将其与您的域匹配,然后采取相应的措施。有关更多信息,请访问 MDN