top.location.replace在Safari/Chrome中创建历史记录项

top.location.replace在Safari/Chrome中创建历史记录项,safari,replace,google-chrome,location,Safari,Replace,Google Chrome,Location,此时,我们有一个photogallery,它使用HashValue确定当前向用户显示的图片,并支持将页面发送给朋友等。比如: 单击“下一步”或“上一步”按钮加载相应图片后,我们将根据JS 1.1规范使用以下内容更改url: top.location.replace(url.url + hash); 我们想要的行为是不创建任何历史项目,因此用户可以使用“后退”按钮离开照片库,而不是使用“后退”按钮查看以前的图片 在IE和Firefox中,该方法就像一个符咒,但Safari和Chrome确实会为

此时,我们有一个photogallery,它使用HashValue确定当前向用户显示的图片,并支持将页面发送给朋友等。比如:

单击“下一步”或“上一步”按钮加载相应图片后,我们将根据JS 1.1规范使用以下内容更改url:

top.location.replace(url.url + hash);
我们想要的行为是不创建任何历史项目,因此用户可以使用“后退”按钮离开照片库,而不是使用“后退”按钮查看以前的图片


在IE和Firefox中,该方法就像一个符咒,但Safari和Chrome确实会为更改后的url创建一个历史记录项。我已经找到了很多示例,说明了如何在使用哈希进行这样的导航时创建历史记录项,但我想用另一种方法来实现这一点。有什么线索吗?

您是否考虑过使用而不是替换整个url来分配哈希


目前似乎没有解决方案。

这项工作现在如预期的那样起作用:

在Safari上[5.1.7]location.replace()按预期工作–URL被替换,后退按钮的队列中没有添加任何内容,历史记录菜单中也没有添加任何内容

在Chrome上,[21.0.1180.82]location.replace()有点棘手–URL被替换,没有添加任何内容到后退按钮的队列中,但它确实向历史记录菜单添加了一个项目


让这一点变得棘手的是,有两个不同的历史记录队列–历史记录菜单和后退/前进按钮。单击并按住后退和前进按钮以查看其队列并与历史记录菜单进行比较


后退/前进按钮的历史队列与活动选项卡绑定。此外,即使您清除历史记录菜单,按钮历史记录也会保留,至少在您关闭选项卡之前是这样。

Yes“replace(url)将当前文档替换为提供的url中的文档。与assign()方法的区别在于使用replace()后当前页面将不会保存在会话历史记录中,这意味着用户将无法使用“后退”按钮导航到该页面。“在那里,我遇到了错误,因为这在Webkit.location.hash中不起作用,它在除IE之外的所有主浏览器中创建历史记录项,因此不起作用:-)仅用于记录,两年后,这仍然是一个恼人的问题。。。Webkit错误修复有点慢。