如何在不重新加载页面的情况下更改目标窗口的location.hash?

时间:2015-03-18 21:06:20

标签: javascript jquery hash window.open

我目前正在使用一个页面来生成一个新窗口,其中包含一个定时回放URL。它加载的许多页面都响应哈希导航。我这样做:

window.open(url,"playback");

当我们浏览网址时,我们应该看到网页会相应地做出响应。然而,我遇到的问题是,当更改哈希时,window.open()调用实际上会重新加载页面。

例如,加载“ pageA.htm ”,然后“ pageB.htm#tab2 ”完美无缺。但问题是,当我尝试从“ pageB.htm#tab2 ”转到“ pageB.htm#tab3 ”时;页面重新加载(正确响应哈希)而不是像我期望的那样只是触发“onhashchange”。

我是否应该调用window.open()来替换仅哈希的更改,这会阻止整页重新加载?

编辑:最终解决方案如下所示:

playbackWindow = window.open(url,"playback");

然后当我们想要更改哈希时:

playbackWindow.location.href = "poundIt";

2 个答案:

答案 0 :(得分:2)

如果不重新加载页面,则无法使用window.open更改哈希值。只需更改window.location.hash的值即可。

答案 1 :(得分:0)

window.location.hash = "This"; 

应该这样做。