为什么<meta http-equiv =“Content-Script-Type”... =“”/>大多未使用?

时间:2011-06-12 04:13:24

标签: html html4

  

相关: What's the point of Content-Script-Type and Content-Style-Type

我想知道开发人员不使用

的主要原因是什么
  • <meta http-equiv="content-script-type" content="text/javascript" />
  • <meta http-equiv="content-style-type" content="text/css" />

在他们的网络项目中。 (我也不是,顺便说一句。)

保存一个必须在type<script>的每个实例上声明使用过的<style>,它似乎没有任何缺点。然而,事实上,我从未在野外见过其中一个。在依赖这些<meta>标记时,是否需要考虑一些因素?

9 个答案:

答案 0 :(得分:28)

根据W3C,http-equiv值“content-style-type”&amp;对于HTML5元标记,“content-script-type”属性为 unknown !此外,当HTML5页面具有此类标记时,W3C验证程序会抛出以下错误:

  

第X行,第Y列:元素元素属性http-equiv的错误值Content-Script-Type。

     

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

基本上我们应该避免它们。

答案 1 :(得分:14)

我听说过的所有网络浏览器都会默认在type="text/javascript"个所有代码上使用<script>,在type="text/css"代码上使用<style>。 (我听说过的唯一有意义的替代方案是MSIE中的<script>标签的VBScript,它已被大量弃用。除了CSS之外别无选择。)认识到这一点,HTML5规范将这两个属性定义为新的可选项。

因此,Content-Script-TypeContent-Style-Type元标记没有任何意义 - 据我所知,大多数(如果不是全部)浏览器都会忽略它们。

答案 2 :(得分:5)

令人遗憾的是,这些设置已被HTML5弃用。因为,正如其他人似乎没有提到的那样,你也可以将默认字符集设置放在那里!因此:

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

答案 3 :(得分:3)

作为一名刚开始从您的问题中了解这些标签的开发人员,我会说这是传统浏览器的诅咒(我在看你,IE6)。因为当我了解新标签时,我通常会继续不使用它们。我总是假设浏览器可能不支持我从未听说过的任何功能,直到我证明不是(这需要时间),并且因为你必须编程到最小公分母(即使你“逐步增强“以后”,这意味着,在这种情况下,使用更安全,更详细的方法。

话虽如此,我实际上可能会试一试。风险很小,除非您使用 text/javascripttext/css以外的内容类型,因为这些是默认设置,例如,永远。事实上,正如@duskwuff指出的那样,使用其中任何一个都没有意义。

答案 4 :(得分:3)

<meta http-equiv="Content-Style-Type" content="text/css; charset=UTF-8;">

CSS元对于内联样式很重要,因为我们无法声明类型,所以:

<span style="background:pink">

答案 5 :(得分:0)

加入讨论......

  1. HTML5 验证器将拒绝这些元标记格式,因为它们已被弃用,正如这里提到的。如果您关心严格的 HTML5 验证,那么您将不得不删除它们。因为浏览器的默认设置与旧浏览器使用的很接近,所以没有它们你可能会没事。我仍然使用它们来支持旧版浏览器。

  2. HTML5 浏览器还使用 "application/javascript"(而不是 "text/javascript")作为正确的脚本类型,旧版浏览器可能不支持。同样,为了安全起见,我会使用带有 "text/javascript" 的旧元标记。

  3. “http-equiv”是服务器发送给浏览器的替代品。我的理解是元标记将被服务器所说的内容覆盖。但是,如果您担心缺少服务器信息,请使用它们,尽管现代浏览器的默认设置可能就足够了。如果服务器确实发送了 "Content-Script-Type""Content-Style-Type",那么您就不需要它们了。

  4. 如果您使用这些元标记是因为您的“内联”CSS 和 JavaScript 位于一个网页中,而该网页的编码方式与 HTML5 默认的 UTF-8 不同?我的理解是 JavaScript 总是存储为 UTF-16,但从 UTF-8 编码的页面解析,这是 HTML5 的默认值。许多较旧的 HTML 文件也可能保存为 ASCII 或 UTF-8,但也可能是其他格式。大多数 JavaScript 解析器,无论新旧,都会浏览所有这些场景并嗅探正确的编码,使用您的元标记作为众多提示之一来找出代码使用的类型和编码。无论您如何编码文件或页面,或者使用什么元标记设置,许多人都会这样做。因此,如果您确实对 HTML 页面或文件进行了不同的编码,则元标记所说的内容可能无关紧要。但它不痛。除非您在 CSS 或脚本中包含更高级别的 UNICODE/语言,否则您无需担心更改编码或使用元标记来控制它。

答案 6 :(得分:-1)

是HTTP-EQUIV - 这与在HTML5中被弃用没什么关系(因为这里的默认设置是JS和CSS - 这也使得type-attribute不再需要) - 仍然存在HTTP协议:{{3} }

因此您可以从服务器端发送HTTP标头,例如来自PHP

<?php
header('Content-Type: text/html; charset=UTF-8');
header('Content-Script-Type: text/javascript');
header('Content-Style-Type: text/css');

或节点

res.set('Content-Type', 'text/html; charset=UTF-8');
res.set('Content-Script-Type', 'text/javascript');
res.set('Content-Style-Type', 'text/css');

答案 7 :(得分:-3)

它们已被折旧。现在,人们使用<script type='text/javascript><style type='text/css'>

答案 8 :(得分:-5)

<script type="text/javascript">

已弃用,因此请使用,如april 2006中所述。 Start here找到最后的内容。