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

标签 javascript browser-history

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

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

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

我将如何解决这个问题?

最佳答案

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

关于javascript - 查明最后一个站点是否与原点相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55637251/

相关文章:

javascript - 如何仅在 AngularJS 中指向相同的单页面应用程序时才显示后退按钮?

javascript - js、jquery - settimeout 和 for 循环

javascript - Aurelia 对话框重复验证

javascript - Rails 实时删除元素

javascript - history.go ('url' ) 问题

java - GWT 上传表单导致浏览器在 Chrome 中卡住页面

javascript - 弹出窗口不适用于谷歌地图

javascript - React Native,元素类型无效 : expected a string (for built-in components)

javascript - 标签(片段标识符)VS Javascript History API

javascript - history.back() - 如果不存在历史记录,如何设置默认值