您是否需要在<脚本>标签中指定文本/javascript?

2022-08-30 02:03:15

我在某处读到,你不再需要像脚本标签中的奇怪和东西这样的东西。因此,而不是:type="text/javascript"CDATA<!--

<script type="text/javascript">
//<![CDATA[
<!--

    //your script here

-->
//]]>
</script>

您只需执行以下操作:

<script>
    //your script here
</script>

我不记得我在哪里读过这个。我想这是来自谷歌或雅虎的工程师,他们特别提到了哪些浏览器需要这些过时的结构以及为什么。有谁知道这是在谈论什么博客文章/文章,或者有一个很好的资源来谈论这个?


答案 1

参见Crockford在<script>标签上的文章,最值得注意的是:

不要将黑客与脚本一起使用。它旨在防止脚本在第一代浏览器Netscape 1和Mosaic上显示为文本。多年来,这已经没有必要了。 应该发出 HTML 注释的信号。注释应被忽略,而不是编译和执行。此外,HTML 注释不包括 ,因此递减的脚本具有 HTML 错误。<!-- //--><!-- //-->--

...

type="text/javascript"

此属性是可选的。从Netscape 2开始,所有浏览器中的默认编程语言都是JavaScript。在 XHTML 中,此属性是必需的,也是不必要的。在HTML中,最好将其排除在外。浏览器知道该怎么做。


答案 2

这是克罗克福德的推荐。我知道我已经看到它在其他地方回响(也许是ppk?)。HTML5 规范不需要它。

奇怪的是,使用“type”属性来标记你不想被评估的块变得有些奇怪<script>

<script type='text/html-template'>
  <div> this is a template </div>
</script>

通过给出一个奇怪的非JavaScript类型,你可以获得一种将原始文本填充到页面中以供其他JavaScript代码使用的方法(这可能是在可以评估的脚本块中)。