此时我们有一个照相馆,它使用哈希值来确定当前向用户显示的图片,并支持将页面发送给朋友等。类似的东西:

http:// url / photos /#photo-4

当我们在单击下一个或上一个按钮后加载相应的图片时,我们使用以下命令根据JS 1.1规范更改URL:

top.location.replace(url.url + hash);

我们想要的行为是没有创建历史项目,因此用户可以使用后退按钮离开相册,而不是使用后退按钮查看以前的图片。

在IE和Firefox中,该方法的工作方式类似于魅力,但Safari和Chrome确实为更改的网址创建了历史记录项。我已经发现很多样本如何在使用哈希进行导航时创建历史项目,但我想以另一种方式执行此操作。任何线索?

有帮助吗?

解决方案

现在按预期工作:

Safari [5.1.7]上,location.replace()按预期工作– 更换网址,没有任何内容添加到后退按钮的队列,也没有添加任何内容历史菜单。

Chrome [21.0.1180.82]上,location.replace()有点棘手–该网址已被替换,并且没有任何内容添加到后退按钮的队列中,但确实会将项目添加到历史记录菜单


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

后退/前进按钮的历史队列与活动选项卡相关联。此外,即使您清除历史记录菜单,按钮历史记录仍会保留,并且至少在您关闭标签页之前都会保留。

其他提示

此时似乎没有解决方案。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top