Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何添加HTML哈希链接而不改变URL栏。。。?_Html_Hash_Hyperlink_Href_Hashtag - Fatal编程技术网

如何添加HTML哈希链接而不改变URL栏。。。?

如何添加HTML哈希链接而不改变URL栏。。。?,html,hash,hyperlink,href,hashtag,Html,Hash,Hyperlink,Href,Hashtag,当我将HTML链接添加到页面的特定部分时: <a href="#specific">test</a> 我注意到它改变了地址栏上的URL。虽然我也遇到过这样的网站,它们的链接方式没有更新地址栏。这怎么可能 编辑:这可能是一个AJAX解决方案,如果他们让它在不更改URL的情况下工作,就像我没记错一样,页面没有重新加载,它直接到达了目标…可以使用javascript截获点击事件,执行您自己的自定义逻辑,然后取消导航事件,这样URL就永远不会更改。也许您可以尝试如下操作:w

当我将HTML链接添加到页面的特定部分时:

<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不会更改:

这种方法有几个优点

  • 只需将scrollLink类应用于要阻止哈希出现的链接(简单易懂)
  • 它使用普通的href,这也意味着即使禁用了javascript,链接仍然可以工作——这有利于可访问性,可能还有搜索引擎优化
    您可以在下一个代码中使用内联:

    <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>