使用javascript更新URL参数,而不会破坏历史记录?

时间:2010-09-07 19:05:18

标签: javascript url parameters hash

我正在寻找一种更新状态栏中网址的方法。 我有一个图库,当您点击图库中的图片时,我希望图片ID显示在网址中,以便用户可以直接链接到图片..

我已经阅读过使用哈希等等。但据我所知,这“废墟”了历史。 如果我单击浏览器中的后退按钮,将显示上一张图像。

是否可以添加或更新URL参数,而不会破坏历史记录?

提前致谢

2 个答案:

答案 0 :(得分:3)

使用location.replace替换当前位置:

  

将当前文档替换为提供的URL处的文档。与assign()方法的区别在于,使用replace()后,当前页面将不会保存在会话历史记录中,这意味着用户将无法使用“后退”按钮导航到该页面。

答案 1 :(得分:1)

这样做就是这样,当切换到图像时,在网址中添加一个哈希值,例如:

location+='#image-'+image_id

您的位置将变为

http://example.org/images/#image-3

而不是最初的

http://example.org/images/

和onload,检查location.hash是否为空,并与^image-(\d+)$ (正则表达式模式)匹配,如果匹配,请执行您通常使用的操作如果用户点击ID为(\d+)的图片,则会完成。

要保留历史记录,请使用reallysimplehistory