【问题标题】:What's the point of Content-Script-Type and Content-Style-TypeContent-Script-Type 和 Content-Style-Type 的意义何在
【发布时间】:2011-09-10 05:22:11
【问题描述】:

考虑这两行:

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

来自Scripting 上的 W3 文档,位于 The default scripting language 部分:

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

Local declaration of a scripting language 继续说:

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

在我看来,这里的规格过高。为什么 both 需要 meta 和 per-script 类型声明?如果我们无论如何都“必须”单独声明每个标签,那么强制默认的意义何在?

要么让默认的成为默认的,要么只是声明每个标签都需要它自己的类型 - 或者这里的措辞只是让我绊倒了吗?引用style sheets 也使用相同的语言。

【问题讨论】:

  • 只是为了阐明 W3C 制作技术文档的具体方式。根据这个w3.org/2001/06/manual/#RFC,它们对指示需求的关键字具有特定含义(例如,“必须”、“不得”、“需要”)[KEYWORDS RFC]。 应该这个词或形容词“推荐”表示在特定情况下可能存在忽略特定项目的正当理由...... 必须这个词或条款“REQUIRED”或“SHALL”,表示定义是规范的绝对要求。

标签: html stylesheet specifications w3c script-tag


【解决方案1】:

&lt;script&gt;&lt;style&gt; 元素只是向 HTML 添加脚本和样式的一种方式。

对于脚本,我们有事件处理程序属性,对于样式化 HTML 4.01 定义了&lt;link&gt; 元素、Link: HTTP 标头和“样式”属性。在上述每种情况下,都不需要指定语言,因此后备将是 Content-Script-Type 和 Content-Style-Type 的值。

例如:脚本部分说:

未指定默认值的文档 脚本语言信息和 包含指定 内在事件脚本不正确。 用户代理可能仍会尝试 解释错误指定 脚本,但不是必需的。 创作工具应该生成 默认脚本语言信息 帮助作者避免创作 文件不正确。

并且样式部分有一个等效的语句:

包含以下元素的文档 设置样式属性,但 不要定义默认样式表 语言不正确。创作 工具应该生成默认样式 工作表语言信息(通常 一个 META 声明),以便用户 代理不必依赖于 默认为“text/css”。

请注意,这些要求不是 DTD 可表达的,因此依赖 DTD 的验证器不会将违规标记为错误。

是否有浏览器真正关注设置,我不知道。

【讨论】:

  • 所以您提出的情况是 Content-X-Type 声明仅适用于 type='Y' 不可用的情况?目前仅适用于 style 属性(因为 HTTP Link 标头(据我所知)甚至还不是 RFC)。当您定义 Content-X-Type 默认值时,我仍然不明白为什么 type='Y' 是必需的。
  • 首先回答您的第二点,我想这是对&lt;style&gt;&lt;script&gt; 的额外更强的限制。 type 属性必须指定,default-x-tyoe 应该指定。它可能与向后兼容性和说明 HTML 4 作者应该的情况以及他们认为在编写规范时在浏览器中工作的内容有很大关系。
  • @Chris - 这不仅仅是“风格”属性。 “onload”、“onclick”等不能有任何其他方式定义的脚本语言。 &lt;link&gt;(肯定)和Link:(可能)可以命名要使用的样式语言,但它们的使用没有必须应该级别要求。跨度>
  • @Chris - HTTP Link 标头的最新 RFC 似乎是 RFC 5988。它处于 PROPOSED STANDARD 状态。
  • 我过度阅读了规范 - 好电话,Content-X-Type 声明是“应该”而不是“必须”,如您所说的 onclicks 等。我猜是这样当我“选择”提供Content-X-Type 时,我“必须”指定type 似乎仍然毫无意义,但现在我更清楚地理解了这两个规范的含义、目的和差异。谢谢!
猜你喜欢
  • 2014-11-17
  • 1970-01-01
  • 2020-02-18
  • 2016-02-26
  • 2015-02-01
  • 1970-01-01
  • 2019-08-05
  • 2012-07-28
  • 2018-08-28
相关资源
最近更新 更多