使用空的URL片段链接时,要将用户发送到页面顶部(例如<a href="#">return to top</a>),这些链接是否被视为损坏或无效?我的工具之一是将它们全部作为断开的链接返回。

评论

哪些“工具”正在考虑将其损坏?

我用来生成站点地图的PHP程序。

@Su':为什么删除我的感谢?我很真诚!

@Nathan我确定你是。但是SE网站并不是真正的讨论论坛,基本上是在浪费时间和空间。只是问这个问题。通过接受/接受答案来表达您的赞赏。杰夫的答案是“规范”答案,但另一些答案则有所不同。

#1 楼

从技术上讲,“#”是一个定义良好的URL引用,它指向当前文档的开头,因此从形式上讲,它不是“损坏”的。但是,它可能被认为对可访问性不利,它也是“伪”链接的常见症状,即应该链接到外部但依赖于JavaScript的a元素。 (在过去,<a href="..." onclick="...">是唯一支持onclick属性的元素,因此人们编写了“虚拟” href="#"属性,这并不是真正的虚拟。)这可能是错误的错误消息,也可能是有用的警告消息,可能编写得不太好。

评论


您是否有明确定义#并指向文档开头(即w3c规范)的来源?

–心怀不满的山羊
2013年1月17日23:23

@DisgruntledGoat,在Internet标准STD 66“统一资源标识符(URI):通用语法”第4.4条中指定。相同文档参考,例如在tools.ietf.org/html/std66#section-4.4

– Jukka K. Korpela
2013年1月17日23:29

提供源的荣誉,尽管我看不到任何单独指定#的内容是指文档的开头。

–心怀不满的山羊
13年1月18日在15:18

是的,标准尚不明确,但是很自然地假设引用的文档最初位于开始位置。其前身RFC 2396更明确:“ 4.2。相同文档参考。不包含URI的URI引用是对当前文档的引用。换句话说,文档中的空URI引用被解释为对该文档开头的引用,而仅包含片段标识符的引用就是对该文档的已标识片段的引用。”

– Jukka K. Korpela
13年1月18日在18:09



#2 楼

我不认为它是断开的链接。

断开的链接是指向资源的链接不存在(404 HTTP响应)。

评论


不要用“我认为”来对冲这个答案。这不是意见问题,而是事实问题(您是正确的)。

–麦桑福德
2013年1月17日在16:36

@msanford:对,我编辑了答案。

– Zistoloen
13年1月17日在17:09