【问题标题】:URL exists in browser history, yet back button not working?URL 存在于浏览器历史记录中,但后退按钮不起作用?
【发布时间】:2015-12-25 01:53:52
【问题描述】:

这可能是一个非常菜鸟的问题,但我无法在 SO 上找到任何可以解决的问题。我在逻辑上有一个类似这样的 JS sn-p:

var return_data = hr.responseText;
if(return_data.indexOf('Are you sure') > -1){
  // if return_data contains the text "Are you sure," redirect to a new page
  var newurl = '/a-s/#/dictionary/' + conjugateterm;
  window.location.assign(newurl);
}
else {
  // if return_data contains the text "Are you sure," show returned_data as usual...
}

这个函数工作正常,只是它似乎劫持了我浏览器的后退按钮!我知道 JavaScript 的 location.assign() 方法不会删除浏览器历史记录,这应该意味着后退按钮可以正常工作,但事实并非如此。奇怪的是,我可以按预期在浏览器历史记录中看到最后访问的页面,但是单击后退按钮只是刷新当前页面,而不是返回到历史记录中显示的最后一页。这是location.assign() 的已知行为吗?如果是这样,有什么办法可以纠正这种情况吗?

【问题讨论】:

    标签: javascript back browser-history


    【解决方案1】:

    您的问题可能是在您的网址中使用了#,它引入了fragment identifier。

    其实/test/page#test1 和/test/page#test2 被认为是同一个资源,只是指向你页面中不同的地方。通常这些片段标识符甚至不会发送到网络服务器。

    【讨论】:

      猜你喜欢
      • 2015-05-18
      • 1970-01-01
      • 2018-10-02
      • 2021-10-27
      • 1970-01-01
      • 1970-01-01
      • 2013-06-23
      • 2018-05-04
      • 2012-08-19
      相关资源
      最近更新 更多