为什么有时浏览器的URL以'#'结尾

时间:2013-08-23 05:55:18

标签: web-applications

在多次请求之后,有时浏览器上的URL会变为:

http://abc.org/#

有谁知道原因?

7 个答案:

答案 0 :(得分:1)

它是一个锚点,因此浏览器直接转到指定的ID。

你给的url有一个空ID的锚,所以什么都不会发生。但你可以想象一个锚点到页面的顶部,这就是“返回顶部”按钮的制作方式。

href="#top"

答案 1 :(得分:1)

是一个内部锚标记,指的是同一页面中的链接。

您可以在以下网站中看到该示例。 http://www.w3schools.com/html/html_links.asp

答案 2 :(得分:1)

这是一个哈希。如果你在哈希符号后面添加一些东西,浏览器将尝试找到具有该名称的元素并实际滚动到它。

如果背后没有任何字符串,则没什么意义。一些Web构建引擎和框架可以利用它们来帮助您进行导航。让它“空”是一种拥有它们的方式,并且什么都不做。

答案 3 :(得分:1)

来自Wikipedia

  

由哈希标记#引入的片段标识符是文档URL的可选最后部分。它通常用于标识该文档的一部分。通用语法在RFC 3986中指定.URI中的哈希标记分隔符不属于片段标识符。

答案 4 :(得分:1)

#字符用于表示浏览器将视图置于特定命名元素的中心。

因此http://www.example.com/#my-content的链接将以ID为“my-content”的元素为中心

许多突兀的javascript库会插入像Javascript Link这样的链接,因此你会在uri字符串的末尾插入神秘的#。请注意,#之后的任何内容都不会通过GET参数传递给服务器。

#后面的URL部分(包括和)是片段标识符http://en.wikipedia.org/wiki/Fragment_identifier。它的其余部分是特殊的。要记住的关键是“仅客户端”(当然,客户端可以选择将其发送到服务器......而不是作为片段标识符):

片段标识符的功能与URI的其余部分不同:即,它的处理完全是客户端的,没有服务器的参与 - 当然,服务器通常有助于确定MIME类型,MIME类型确定处理碎片。当代理(例如Web浏览器)从Web服务器请求资源时,代理会将URI发送到服务器,但不会发送该片段。相反,代理等待服务器发送资源,然后代理根据文档类型和片段值处理资源。

答案 5 :(得分:1)

#会快速强制浏览器向上滚动/向下滚动用户到该页面上HTML内容的各个部分,其ID属性等于#符号后的ID属性。

如果页面上某处<div>的ID为“A”,

将我的浏览器指向http://www.abc.com/#A会将我带到那个div。

一个很好的例子是维基百科。维基页面上的部分通常是div,菜单的URL为#

答案 6 :(得分:1)

这在URL中用于指示片段标识符(HTML中的书签/锚点)的开始位置。

我希望这会有所帮助: http://www.blooberry.com/indexdot/html/topics/urlencoding.htm