我看到许多应用程序在希望满足锚标记的href属性时替换“#”。虽然我理解它是如何运作的,但是说形式的网址是否有效:
http://somesite.com/resource.html#
和
http://somesite.com/resource.html
相同吗?如果没有,#表示空值是什么意思?我经常看到浏览器将其解释为“页面顶部”。
答案 0 :(得分:1)
主题标签#
是仅客户端的片段标识符。符号表示内容中的标识符。该内容可以是text/html
或XML。
像http://somesite.com/resource.html#这样的URL地址以空片段标识符结尾。空片段标识符在技术上无效,但是有效的URL地址。
浏览器不会使用空片段匹配<div id="">....</div>
。
相反,浏览器将空片段视为无效标识符。所以它被忽略了。它没有指定页面顶部的点。如果您打开以#
空片段结尾的网址,请向下滚动到底部,然后点击刷新。浏览器不会刷新到页面顶部。它将刷新到当前位置。
片段可以在浏览器中用于自定义内容类型。如应用程序或PDF文档。
答案 1 :(得分:0)
specification for URL parsers中的信息摘要:
#
会将URL的fragment
设置为空字符串,并且实质上告诉解析器需要一个片段字符串(可能指向页面的特定区域)。如果URL在该点结束,则fragment
仍然是空字符串,并且浏览器中的结果应该好像URL中甚至不存在#
。
因此,尾随#
并没有指定“页面顶部”,因为它产生的浏览器解析URL的行为应该是没有尾随的#