相关: 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>
标记时,是否需要考虑一些因素?
答案 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-Type
和Content-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/javascript
和text/css
以外的内容类型,因为这些是默认设置,例如,永远。事实上,正如@duskwuff指出的那样,使用其中任何一个都没有意义。
答案 4 :(得分:3)
<meta http-equiv="Content-Style-Type" content="text/css; charset=UTF-8;">
CSS元对于内联样式很重要,因为我们无法声明类型,所以:
<span style="background:pink">
答案 5 :(得分:0)
加入讨论......
HTML5 验证器将拒绝这些元标记格式,因为它们已被弃用,正如这里提到的。如果您关心严格的 HTML5 验证,那么您将不得不删除它们。因为浏览器的默认设置与旧浏览器使用的很接近,所以没有它们你可能会没事。我仍然使用它们来支持旧版浏览器。
HTML5 浏览器还使用 "application/javascript"
(而不是 "text/javascript"
)作为正确的脚本类型,旧版浏览器可能不支持。同样,为了安全起见,我会使用带有 "text/javascript"
的旧元标记。
“http-equiv”是服务器发送给浏览器的替代品。我的理解是元标记将被服务器所说的内容覆盖。但是,如果您担心缺少服务器信息,请使用它们,尽管现代浏览器的默认设置可能就足够了。如果服务器确实发送了 "Content-Script-Type"
和 "Content-Style-Type"
,那么您就不需要它们了。
如果您使用这些元标记是因为您的“内联”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找到最后的内容。