html中标记a的type属性是如何实现的?

时间:2012-05-08 23:34:03

标签: html5

W3C Schools表示“type属性指定链接文档的MIME类型”,并以<a href="http://www.w3schools.com" type="text/html">W3Schools</a>为例。如果我将text/html更改为application/zip,则accept标题字段已更改。

explanation in the specification还声明该属性“纯粹是建议性的”。这意味着,浏览器可以简单地忽略它吗?

可以预期,该属性会反映在“accept”标题字段中。

3 个答案:

答案 0 :(得分:4)

规范中没有任何内容表明UA必须在跟踪链接时更改Accept标头以匹配type属性。所有它说的是,UA不能依赖type来确定被检索的资源类型。

答案 1 :(得分:3)

  

type属性(如果存在)提供链接资源的MIME类型。这纯粹是建议性的。该值必须是有效的MIME类型。用户代理不得将type属性视为权威的 - 在获取资源时,用户代理不得使用资源链接中包含的元数据来确定其类型。

正如它所说,它纯粹是建议性的,用户代理一定不能认为它具有权威性。换句话说,它甚至不能保证它是正确的,只是提示。我认为这纯粹基于实用性,因为链接很快就会变得陈旧;链接不能指示链接资源的内容。用户代理应该对该属性做什么没有其他规范。例如,它可以由用户代理用于在视觉上向用户指出链接将(可能)导致PDF文件。我不知道现在这样做的用户代理。该属性没有任何其他指定用途,因此它也不应更改Accept标题。

答案 2 :(得分:2)

type属性对于脚本和HTML5音频/视频非常重要。如果您通过HTML5 JavaScript API访问音频/视频(例如,当用户开始游戏时启动音频),如果浏览器无法播放指定为音频源的任何文件,则JavaScript将严重失败视频节点。

使用JavaScript,您可以在尝试访问之前检查浏览器是否能够播放媒体,但您不仅要知道MIME类型,还要知道媒体文件中使用的编解码器,并且无法可靠地猜到基于文件扩展名。

这就是type属性的用武之地,JavaScript可以从type属性中获取该信息,然后查询浏览器是否能够播放该类型的媒体。

当媒体播放时服务器发送的MIME类型仍然必须正确,您无法使用type属性补偿服务器上的错误MIME类型,无论是HTML5媒体还是其他任何标签使用该属性。