javascript - URL 存在于浏览器历史记录中,但后退按钮不起作用?

标签 javascript back browser-history

这可能是一个相当菜鸟的问题,但我找不到任何可以解决这个问题的内容。我有一个与逻辑类似的 JS 片段:

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() 的已知行为吗?如果是这样,有什么办法可以补救吗?

最佳答案

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

事实上,/test/page#test1/test/page#test2 被视为相同的资源,只是指向页面中的不同位置。通常这些片段标识符甚至不会发送到网络服务器。

关于javascript - URL 存在于浏览器历史记录中,但后退按钮不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34459389/

相关文章:

javascript - HTML/JavaScript 链接

javascript - 使用 session Javascript 存储数据

Android 后退按钮按下检查

CSS Popup 覆盖浏览器后退按钮

java - 在 Activity 时实现后退按钮(物理)Android

php - 在 Codeigniter 中创建后页链接

c++ - IUrlHistoryStg::BindToObject 方法有什么作用?

javascript - Actions 必须是 React/Redux 中的普通对象吗?

php - 如何用图像替换提交按钮? [jQuery jQtransform 插件]

android - 如何在android中获取浏览器历史记录?