Content-Script-Type和Content-Style-Type有什么作用?

6

考虑以下两行:

<meta http-equiv="Content-Script-Type" content="text/javascript" />
<meta http-equiv="Content-Style-Type" content="text/css" />

从W3的Scripting文档中,默认脚本语言部分指出:

作者应该通过在HEAD中包含以下META声明来为文档中的所有脚本指定默认脚本语言

但是在脚本语言的本地声明中继续说道:

必须为文档中每个SCRIPT元素实例指定type属性。SCRIPT元素的type属性值覆盖该元素的默认脚本语言。

我认为这里有过度规定的情况。如果我们必须单独声明每个标签,那么强制要求默认值有什么意义呢?

要么让默认值成为默认值,要么只声明每个标签需要自己的类型 - 或者这里的措辞只是让我感到困惑?在引用样式表时也使用了相同的语言。


只是澄清W3C技术文档的具体方式。 根据此http://www.w3.org/2001/06/manual/#RFC,他们对关键词有特定的含义以指示要求(例如,“MUST”,“MUST NOT”,“REQUIRED”)[【关键字RFC】(http://www.ietf.org/rfc/rfc2119.txt)]。SHOULD这个词或形容词“推荐”意味着在特定情况下可能存在有效的理由忽略特定项目... MUST这个词或“必需”的术语或“SHALL”意味着定义是规范的绝对要求。 - tyger
1个回答

5
<script><style> 元素只是在 HTML 中添加脚本和样式的一种方式。
对于脚本,我们有事件处理程序属性;对于样式,HTML 4.01 定义了 <link> 元素、"Link:" HTTP 头以及 "style" 属性。在这些情况下,指定语言并不是必须的,因此回退将是 Content-Script-Type 和 Content-Style-Type 的值。
例如:脚本部分说:
文档未指定默认脚本语言信息但包含指定内置事件脚本的元素是不正确的。用户代理可能仍然尝试解释错误指定的脚本,但并非必须如此。创作工具应生成默认脚本语言信息,以帮助作者避免创建不正确的文档。
样式部分也有类似的声明:
包括设置 style 属性但未定义默认样式表语言的元素的文档是不正确的。创作工具应生成默认样式表语言信息(通常是 META 声明),以便用户代理不必依赖 "text/css" 的默认值。
请注意,这些要求不能在 DTD 中表达,因此依赖 DTD 的验证器不会将违规行为标记为错误。
无论任何浏览器是否真正关注这些设置,我都不知道。

那么你的观点是,Content-X-Type声明仅适用于type ='Y'不可用的情况?目前这仅适用于style属性(因为HTTP链接标头(据我所知)甚至还没有成为RFC)。我仍然不明白为什么在定义了Content-X-Type默认值时需要type ='Y'。 - Chris Tonkinson
首先回答你的第二个问题,我猜这是对<style><script>标签的额外限制。必须指定type属性,建议指定默认类型。这可能与向后兼容性有很大关系,并且说明了HTML 4作者应该是什么情况,以及他们认为在规范编写时浏览器中的工作方式。 - Alohci
1
@Chris - 不仅仅是“style”属性。 "onload",“onclick”等不能通过任何其他方式定义脚本语言。 <link>(肯定)和Link:(可能)可以命名要使用的样式语言,但没有必须或应该级别的要求使用它们。 - Alohci
@Chris - HTTP链接头的最新RFC似乎是RFC 5988。它处于建议标准状态。 - Alohci
我过度阅读了规范 - 很好,Content-X-Type声明是一个“应该”而不是一个“必须”,旨在处理你所说的onclick等。我猜我仍然觉得当我“选择”提供Content-X-Type时,“必须”指定type似乎毫无意义,但现在我更清楚地理解了这两个规范的含义、目的和区别。谢谢! - Chris Tonkinson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接