Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 为什么<;META HTTP-EQUIV=";内容脚本类型“&燃气轮机;大部分都没用?_Html_Html4 - Fatal编程技术网

Html 为什么<;META HTTP-EQUIV=";内容脚本类型“&燃气轮机;大部分都没用?

Html 为什么<;META HTTP-EQUIV=";内容脚本类型“&燃气轮机;大部分都没用?,html,html4,Html,Html4,相关: 我想知道开发人员不使用的主要原因是什么 和 在他们的网络项目中。(顺便说一句,我也是。) 避免在每个和实例上声明所使用的类型,它似乎没有任何缺点。然而,事实上,我从未在野外见过它们。在依赖这些标记时,有什么需要考虑的吗?我听说的所有web浏览器都默认在所有标记上使用type=“text/javascript”,在标记上使用type=“text/css”。(我所听说的唯一有意义的替代方案是MSIE中标记的VBScript,它已被严重弃用。CSS没有替代方案。)认识到这一点,HTML5

相关:

我想知道开发人员不使用的主要原因是什么

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


避免在每个
实例上声明所使用的
类型
,它似乎没有任何缺点。然而,事实上,我从未在野外见过它们。在依赖这些
标记时,有什么需要考虑的吗?

我听说的所有web浏览器都默认在所有
标记上使用
type=“text/javascript”
,在
标记上使用
type=“text/css”
。(我所听说的唯一有意义的替代方案是MSIE中
标记的VBScript,它已被严重弃用。CSS没有替代方案。)认识到这一点,HTML5规范将这两个属性定义为新的可选属性


因此,
内容脚本类型
内容样式类型
元标记没有任何意义——据我所知,大多数(如果不是所有)浏览器都忽略了它们。

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


话虽如此,我还是可以试一试。风险很小,除非您使用的内容类型不是
text/javascript
text/css
,因为这些都是假定的默认值,比如永远。事实上,正如@Dashwuff所指出的,使用这两种方法可能都没有意义。

它们被贬值了。现在,人们使用http等价值“content-style-type”和“content-script-type”属性作为HTML5元标记的
unknown
!此外,当HTML5页面具有此类标记时,W3C验证程序会抛出以下错误:

第X行,第Y列:meta元素上属性http equiv的错误值内容脚本类型


因此,我们基本上应该避免使用它们。

遗憾的是,这些设置已经被HTML5弃用了。因为,正如没有其他人提到的,您也可以在其中设置默认字符集设置!因此:


CSS元对于无法声明类型的内联样式非常重要,因此:

<span style="background:pink">


是去润滑的,所以使用

<script type="application/javascript">


相反,就像在这里提到的。查找最后的内容

作为HTTP-EQUIV-这与HTML5中被弃用没有什么关系(因为这里的默认值确实是JS和CSS-这也使得类型属性不必要)-仍然存在HTTP协议:

因此,您可以从服务器端很好地发送HTTP头,例如从PHP发送

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

加入讨论

  • HTML5的验证器将拒绝这些元标记格式,因为它们已被弃用,正如这里提到的一些格式。如果你关心严格的HTML5验证,那么你必须删除它们。由于浏览器的默认设置与旧浏览器的默认设置非常接近,因此,如果没有这些默认设置,您可能不会有问题。我仍然使用它们来支持较旧的浏览器

  • HTML5浏览器还使用
    “application/javascript”
    (而不是
    “text/javascript”
    )作为正确的脚本类型,而较旧的浏览器可能不支持这种类型。同样,为了安全起见,我会将较旧的元标记与
    “text/javascript”
    一起使用

  • “http equiv”是服务器发送到浏览器的内容的替代品。我的理解是,元标记将被服务器所说的内容覆盖。但是,如果您担心丢失服务器信息,可以使用它们,尽管现代浏览器的默认设置可能就足够了。如果服务器确实发送了
    “内容脚本类型”
    “内容样式类型”
    ,那么您就不需要它们了

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


  • 可能是因为他们闻所未闻。大多数人只是习惯于键入
    还有web开发人员和web复制粘贴人员。有点像BoltClock提到的,大多数人只是不了解web开发,但仍然制作外观酷炫的网页。如果他们不推荐使用,你应该参考W3C文档(例如)这样说,或者说明为什么称他们为“不推荐使用”是公平的。如果我不是完全错的,W3C或WHATWG中没有人关心RFC4329(但你可能会证明我错了!)此外,使用
    script type=“application/javascript”
    是错误的。你混淆了不相关的标准。是的,这让我感到厌烦,因为这些标准
    <script type="application/javascript">
    
    <?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');