经过多次请求后,有时浏览器上的 URL 变为:
有人知道原因吗?
这在 URL 中用于指示片段标识符(HTML 中的书签/锚点)的开始位置。
我希望这会有所帮助: http: //www.blooberry.com/indexdot/html/topics/urlencoding.htm
它是一个锚点,以便浏览器直接转到指定的 ID。
您提供的网址有一个指向空 ID 的锚点,因此不会发生任何事情。但是您可以想象页面顶部的锚点,这就是“返回顶部”按钮的制作方式。
href="#top"
Is 是一个内部锚标记,指的是同一页面中的链接。
您可以在以下站点中查看示例。 http://www.w3schools.com/html/html_links.asp
那是一个哈希。如果你在那个井号后面放了一些东西,浏览器将尝试找到具有该名称的元素并实际滚动到它。
如果后面没有字符串,它就没有什么意义了。一些 Web 构建引擎和框架可能会利用它们来帮助您导航。让它“空”是一种拥有它们的方式,并且什么都不做。
来自维基百科:
由井号 # 引入的片段标识符是文档 URL 的可选最后部分。它通常用于标识该文档的一部分。通用语法在 RFC 3986 中指定。URI 中的哈希标记分隔符不属于片段标识符。
# 字符用于向浏览器发出信号,将视图集中在特定的命名元素上。
因此,指向http://www.example.com/#my-content的链接将以 id 为“my-content”的元素为中心</p>
许多突兀的 javascript 库会插入像 Javascript Link 这样的链接,因此你的神秘 # 在 uri 字符串的末尾。请注意,# 之后的任何内容都不会通过 GET 参数传递给服务器。
# 后面的 URL 部分(包括和)是片段标识符http://en.wikipedia.org/wiki/Fragment_identifier。它与 URL 的其余部分不同。要记住的关键是“仅限客户端”(当然,客户端可以选择将其发送到服务器......只是不作为片段标识符):
片段标识符的功能与 URI 的其余部分不同:即,它的处理完全是客户端,没有服务器的参与——当然,服务器通常有助于确定 MIME 类型,而 MIME 类型决定了片段的处理。当代理(例如 Web 浏览器)向 Web 服务器请求资源时,代理将 URI 发送到服务器,但不发送片段。相反,代理等待服务器发送资源,然后代理根据文档类型和分片值处理资源。
# 将快速强制浏览器向上/向下滚动用户到该页面上的 HTML 内容部分,其 ID 属性等于 # 符号后面的那个。
如果我<div>
在页面上有一个 ID 为“A”的地方,
将我的浏览器指向http://www.abc.com/#A
将带我到那个 div。
一个很好的例子是维基百科。wiki 页面上的部分通常是 div,菜单有 URL#