如何添加HTML哈希链接而不改变URL栏。。。?
当我将HTML链接添加到页面的特定部分时:如何添加HTML哈希链接而不改变URL栏。。。?,html,hash,hyperlink,href,hashtag,Html,Hash,Hyperlink,Href,Hashtag,当我将HTML链接添加到页面的特定部分时: <a href="#specific">test</a> 我注意到它改变了地址栏上的URL。虽然我也遇到过这样的网站,它们的链接方式没有更新地址栏。这怎么可能 编辑:这可能是一个AJAX解决方案,如果他们让它在不更改URL的情况下工作,就像我没记错一样,页面没有重新加载,它直接到达了目标…可以使用javascript截获点击事件,执行您自己的自定义逻辑,然后取消导航事件,这样URL就永远不会更改。也许您可以尝试如下操作:w
<a href="#specific">test</a>
我注意到它改变了地址栏上的URL。虽然我也遇到过这样的网站,它们的链接方式没有更新地址栏。这怎么可能
编辑:这可能是一个AJAX解决方案,如果他们让它在不更改URL的情况下工作,就像我没记错一样,页面没有重新加载,它直接到达了目标…可以使用javascript截获点击事件,执行您自己的自定义逻辑,然后取消导航事件,这样URL就永远不会更改。也许您可以尝试如下操作:window.scroll(0150);
不要使用“(0150)”而是放置目标的坐标。您必须尝试使用数字(此处显示为200)以使窗口正确对齐
<a href="javascript:void(0);" onclick="window.scroll(0,200);">test</a>
您可能希望查看jquery插件scrollTo 还有几个scrollTo的链接 您可以这样做: HTML文件
<a href="#scrollToMe" class="scrollLink">click me to scroll</a>
<div class="gap">a big gap</div>
<h1 id="scrollToMe">I should scroll to here without a # in the URL</h1>
javascript所做的是,当单击一个类为“.scrollLink”的链接时,将页面向下滚动到与所单击的特定链接的href具有相同ID的元素。然后,e.preventDefault()停止它与普通哈希链接一样的工作,并停止它出现在URL栏中
以下是一个工作示例:
以及不在框架集中的版本,因此您可以看到URL不会更改:
这种方法有几个优点
您可以在下一个代码中使用内联:
<a href="javascript:void(0);" onclick="document.getElementById(\'bookmark\').scrollIntoView();"> link text </a>
<div id="bookmark">Jump to here</div>
跳到这里
为什么不使用javascript,例如window.scrollTo()
?我不懂javascript。你能用一个有效的javascript例子来回答这个问题吗?我会对这个解决方案感到满意的。嗨,Alehandro Darie,你能给我一点背景知识来解释为什么你不想改变URL栏吗?这样我们就可以为您构建一个答案。谢谢。@AlexKey谢谢你的回复。原因是,如果访问者重新加载页面或将其添加书签,它将始终转到特定的目的地。问题是,我已经开发了一种单页类型的公文包设计,很可能访问者在浏览网站时会给网站添加书签,这意味着当他们添加书签并返回网站时,他们会在页面的任意部分(而不是顶部)着陆。我希望这是有意义的…很酷,谢谢Alehandro,现在为您准备一个回复。您能给我写下这个解决方案的代码吗?请注意,不幸的是,我不懂javascript,只懂基本的HTML。如果我能正确地对齐它,目标在所有浏览器上都会完全相同吗?正如我前面提到的,我对javascript不是很有经验,因此不知道它是根据什么规则运行的。请帮助@AlehandroDarie,很高兴能提供帮助。:-)
<a href="javascript:void(0);" onclick="document.getElementById(\'bookmark\').scrollIntoView();"> link text </a>
<div id="bookmark">Jump to here</div>