空href的规范/实现行为?

时间:2011-01-04 00:29:17

标签: browser hyperlink

几年前我读过一个关于各种浏览器在点击带有空白href的链接时的不同行为实现的页面。

  • 其中一些链接到目录(/path/to/file?query/path/to/
  • 其中一些链接到完全相同的URI(/path/to/file?query/path/to/file?query
  • 其中一些链接到同一页面(/path/to/file?query/path/to/file

......以及其他各种行为。

  • 是否在规范中定义了行为?
  • 如果是,那么正确的行为是什么?
  • 如果是这样,今天五大浏览器的最新版本是否修复了它们的实现?

1 个答案:

答案 0 :(得分:1)

由于HREF的内容没有“规范”(至少在HTML 4中),浏览器可以做任何他们该死的事。

更新但是,除了HTML之外,还有一个RFC3986: Uniform Resource Identifier (URI): Generic Syntax。它的部分4.4. Same-Document Reference表示:

  

当URI引用引用除了其片段之外的URI时   组件(如果有的话),与基本URI(第5.1节)相同,即   引用称为“同一文档”引用。最常见的
  相同文档引用的示例是空的相对引用 ...

我不一定将上面的内容读作“空URI必须导致客户端重新加载相同的文档的URI”,但它听起来像是一种“最佳实践”类型的措辞;所以,如果我实现自己的浏览器,我几乎肯定会遵循这样的行为。

在相关的说明中,这是一个很好的最近3/2010)综述了浏览器如何处理src标签的<img>属性:http://www.nczonline.net/blog/2010/03/16/empty-string-urls-in-html-a-followup/http://www.nczonline.net/blog/2010/07/13/empty-string-urls-browser-update/。请注意这是一个大问题,因为拥有和清空img src会导致页面在最糟糕的情况下无休止地重新加载。