这可能是一个相当菜鸟的问题,但我找不到任何可以解决这个问题的内容。我有一个与逻辑类似的 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/