找出上一个站点是否与原站点相同

时间:2019-04-11 16:29:11

标签: javascript browser-history

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

但是,这会导致用户卡在我的页面上,因为当他尝试返回时,我只是重新加载页面,而无法保护他要访问的页面是否与我的页面相同。我想要这样:

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

我该如何批准?

1 个答案:

答案 0 :(得分:0)

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