是否有一个可以调用的函数来阻止浏览器在更改哈希值时记录后历史记录条目?
我正在编写一个简单的javascript库,可以在用户浏览每张图片时更改浏览器网址而无需重新加载页面。
这是通过将location.hash设置为图像的唯一ID来完成的。
window.location.hash = imageID;
问题是,当用户点击浏览器后退按钮时,他们必须向后移动每个图像,就像页面加载一样。
如果他们使用图库旋转了20张图片,则必须再次点击21次才能返回上一页。
如何使用javascript阻止回溯历史记录?
答案 0 :(得分:30)
window.location.replace
可让您设置网址,而无需将其添加到浏览器历史记录中。
var baseUrl = window.location.href.split('#')[0];
window.location.replace( baseUrl + '#' + imageID );
答案 1 :(得分:4)