【发布时间】:2012-11-24 00:39:19
【问题描述】:
我有一个经常会被发现的问题。问题是找不到明确的解决方案。
我有两个关于锚点的问题。
主要目标应该是在使用锚点跳转页面时获得一个没有任何散列的漂亮干净的网址。
所以anchors的结构是:
<ul>
<li><a href="#one">One</a></li>
<li><a href="#two">Two</a></li>
<li><a href="#three">Three</a></li>
</ul>
<div class="wrap">
<a name="one">text 1</a>
<a name="two">text 2</a>
<a name="three" class="box">text 3</a>
</div>
好的,如果您单击其中一个链接,则 url 将自动更改为
www.domain.com/page#1
最后应该是这样的:
www.domain.com/page
到目前为止,一切都很好。现在第二件事是,当您在互联网上搜索该问题时,您会发现 javascript 作为解决方案。
我找到了这个功能:
function jumpto(anchor){
window.location.href = "#"+anchor;
}
并使用以下方法调用该函数:
<a onclick="jumpto('one');">One</a>
什么会和以前一样。它将哈希添加到 url。我也加了
<a onclick="jumpto('one'); return false;">
没有成功。因此,如果有人可以告诉我如何解决这个问题,我将不胜感激。
非常感谢。
【问题讨论】:
-
不确定,但您可以尝试在跳转后手动写入哈希属性。例如,在设置
window.location.hash=''的 onclick 处理程序中设置超时。 -
您的意思是在跳转到同一网页的另一部分时,您不想在 URL 中显示 #?
-
在这种情况下,您将不得不操作窗口的 scrollTop,通常通过
window.scrollTo或相应的 jQuery 助手:stackoverflow.com/questions/6677035/jquery-scroll-to-element 或 stackoverflow.com/questions/500336/… -
@Jeff - 如果你这样做
location.hash='',#仍然存在。 -
请不要那样做。将页面保存在书签中时,哈希值很好。
标签: javascript html function anchor href