你需要在<script>标签中指定的text / javascript吗?
我在某处读到你不再需要在你的脚本标签中使用type="text/javascript"
和奇怪的CDATA
和<!--
东西。 所以,而不是:
<script type="text/javascript"> //<![CDATA[ <!-- //your script here --> //]]> </script>
你只需要做:
<script> //your script here </script>
我不记得我在哪里阅读这个。 我认为它来自Google或Yahoo工程师,他们特别提到了哪些浏览器需要这些古老的构造以及为什么。 任何人都知道这篇文章被讨论过的博客文章/文章,还是有一个很好的资源来谈论这个?
请参阅Crockford在<script>
标签上的<script>
,最引人注目的是:
不要在脚本中使用
<!-- //-->
hack。 它旨在防止脚本在第一代浏览器Netscape 1和Mosaic上显示为文本。 这是多年来没有必要的。 应该表示HTML注释。 应该忽略注释,而不是编译和执行。 此外,HTML注释不包括--
,所以递减的脚本有HTML错误。
…
type="text/javascript"
该属性是可选的。 由于Netscape 2是所有浏览器中的默认编程语言,都是JavaScript。 在XHTML中,这个属性是必需的和不必要的。 在HTML中,最好不要使用它。 浏览器知道该怎么做。
这是一个克罗克福德的build议。 我知道我已经看到它在别处回声(ppk也许?)。 HTML5规范不要求它。
奇怪的是,使用“type”属性来标记你不想被评估的<script>
块会变得有些不合适 :
<script type='text/html-template'> <div> this is a template </div> </script>
通过给出一个奇怪的非JavaScripttypes,您可以将原始文本填充到页面中供其他JavaScript代码使用(推测可以在脚本块中进行评估)。
HTML5不需要type="text/javascript"
(这是默认的)。
如果脚本中有任何HTML字符(如“<”和“>”), CDATA
仅适用于XHTML页面。
只适用于旧浏览器。
type属性标识脚本元素中embedded的代码的脚本语言,或者通过元素的src属性引用。 这被指定为MIMEtypes; 支持的MIMEtypes包括text / javascript,text / ecmascript,application / javascript和application / ecmascript。
根据HTML 4.01规范
type属性指定元素内容的脚本语言,并覆盖默认的脚本语言。 脚本语言被指定为内容types(例如“text / javascript”)。 作者必须为此属性提供一个值。 这个属性没有默认值。
但在HTML5 text/javascript
是默认的types,所以你可以省略
type属性给出脚本的语言或数据的格式。 如果该属性存在,则其值必须是有效的MIMEtypes。 charset参数不能被指定。 如果该属性不存在,则使用默认值“text / javascript”。
你可能会想到这里的这篇文章的依赖是脚本默认为HTML5中的文本/ JavaScript自动,而非HTML5的浏览器仍然希望你明确定义types明智的即使他们几乎总是会猜测文本/ JavaScript的反正。
这取决于浏览器正确解释script
块的基础上,我相信,而不是type
属性。 所以要回答你的问题,不,现代浏览器不需要(我在说IE7 +,FF,Webkit)。 如果你支持的浏览器比以前更老…我为你感到难过=)
那么,我很想说,没有人再使用text/javascript
,甚至缩小工具可能会删除它…确实, Facebook SDK文档只指定<script>
。
但是, Google SDK文档仍然具有text/javascript
。
Amazon SDK文档仍然具有text/javascript
。
LinkedIn API文档仍然具有text/javascript
。
Instagram仍然使用text/javascript
。
type="text/javascript"
:在HTML 4和XHTML中是必需的,但在HTML5中是可选的。
CDATA
:在XHTML中是必需的。
<!--
:用于隐藏非常旧的浏览器中的JavaScript。 例如:Netscape 1和Internet Explorer 2,任何人都不再使用。
那么我不断看到更多的例子没有文字/ JavaScript,但由于某种原因,我的脚本不会工作在FF时,我这样做。 我会build议保持文本/ JavaScript的声明。 如果您的浏览器已closuresjavascript,CDATA标记可防止JavaScript在您的网站中显示为纯文本。 就我个人而言,我不再使用这些标签,不要认为没有用户在那里没有分配,如果他们在那里,他们可能想成长一些大脑:P