15

是否可以调用一个函数来防止浏览器在更改哈希值时记录回溯历史条目?

我正在编写一个简单的 javascript 库,它可以在用户浏览每个图像时更改浏览器 url 而无需重新加载页面。

这是通过将 location.hash 设置为图像的唯一 ID 来完成的。

window.location.hash = imageID;

问题是当用户点击浏览器后退按钮时,他们必须像加载页面一样向后移动每张图片。

如果他们使用图库旋转了 20 张图片,他们必须点击返回 21 次才能返回上一页。

如何防止使用 javascript 记录回溯历史?

4

2 回答 2

32

window.location.replace将允许您设置 url 而无需将其添加到浏览器历史记录中。

var baseUrl = window.location.href.split('#')[0];
window.location.replace( baseUrl + '#' + imageID );

文件

于 2012-07-13T13:23:27.383 回答
4

您可以使用replaceState()

在更改哈希之前保存历史记录,然后更改哈希,最后将历史记录替换为您保存的历史记录。

或者,您可以使用popState Event

于 2012-07-13T13:06:42.583 回答