Javascript中的哈希刷新

Javascript中的哈希刷新,javascript,html,url-fragment,Javascript,Html,Url Fragment,我几乎完成了我的上一期,但现在我正在处理一些更微妙和恼人的事情 我有一个页面,上面有如下链接: <a href = "page.html#1">First content</a> <a href = "page.html#2">Second content</a> 因此,我点击第一个链接,我看到(在另一个框架中)页面“page.html”,正确地从锚点1开始。最后javascript写了“page.html

我几乎完成了我的上一期,但现在我正在处理一些更微妙和恼人的事情

我有一个页面,上面有如下链接:

<a href = "page.html#1">First content</a>
<a href = "page.html#2">Second content</a>
因此,我点击第一个链接,我看到(在另一个框架中)页面“page.html”,正确地从锚点1开始。最后javascript写了“page.html#1”,这是正确的。 然后我点击第二个链接,我看到页面“page.html”改变了它的起点,现在正确地设置为锚点#2。但在页面的末尾,我仍然看到“page.html#1”,而不是我预期的“page.html#2”。我认为这是因为页面与以前完全相同,只是起始点发生了更改,所以“location.href”没有更改,尽管哈希值有所不同


是否有办法解决此问题,并获取原始位置。href,即具有正确哈希的位置?

使用onclick事件属性:

<a href="page.html#1" onclick="document.write(window.location.href);">First content</a>
<a href = "page.html#2" onclick="document.write(window.location.href);">Second content</a>


问题在于页面实际上没有改变。您将需要再次执行
document.write()
功能,而不是依赖页面重新加载来为您执行它。相切的,但
document.write()
已经过时一段时间了-您可能应该利用更合适的DOM操作方法。Document.write只是找到问题所在的一种方法。我需要的是识别正确的散列,就像在原始链接中一样。@AndreaCarta
window.location.href
识别正确的散列。只是在页面内导航时,您的代码不会再次执行。@Bergi:我已更正。与我的预期相反,hashchange事件处理程序确实可以工作,代码(在处理程序内部移动后)现在可以正常工作。你的建议很好。这只打印带有链接的页面的location.href,在带有链接的页面内。我需要链接页面的location.href,从链接页面的内部开始。
<a href="page.html#1" onclick="document.write(window.location.href);">First content</a>
<a href = "page.html#2" onclick="document.write(window.location.href);">Second content</a>