脚本标记中的“lang”和“type”属性有什么区别?

时间:2008-09-21 23:08:21

标签: html scripting

对于<script> HTML代码,lang=Javascripttype=text/javascript之间的技术差异是什么?

我经常使用两者,因为我一直认为旧浏览器需要其中一种。

7 个答案:

答案 0 :(得分:30)

根据HTML 4.01 Spec

  

<强>型:       此属性指定元素内容的脚本语言,并覆盖默认脚本语言。脚本语言被指定为内容类型(例如,“text / javascript”)。作者必须为此属性提供值。此属性没有默认值。

     

语言:已弃用。此属性指定此元素内容的脚本语言。它的值是该语言的标识符,但由于这些标识符不是标准的,因此不推荐使用此属性而不支持类型。

答案 1 :(得分:3)

<script language="">可用于提供VBScript和不同版本的Javascript。

除非您需要特定版本的Javascript,否则请不要使用语言属性,否则您的代码仍可正常工作。

即使您确实需要某个部分代码的特定Javascript版本,请尝试使用(typeof window.blah.feature!=“undefined”)检查来测试该功能是否存在。

以下是语言属性用法的示例: http://bclary.com/2004/08/27/javascript-version-incompatibilities

由于这种松散定义或不确定的行为,语言属性已被弃用。

type属性完全不同。它告诉浏览器脚本是什么mime类型,并且应该始终在脚本标记中指定。

答案 2 :(得分:2)

语言是旧属性,类型是新属性。您必须使用过渡性(不是肯定的,但相当确定)doctype合法使用这两个属性。

答案 3 :(得分:2)

OP特别说&#34; lang&#34;不是&#34;语言&#34;。更古老的语言&#34;标签本来是Javascript或VBScript。

当前和看似有效的 &#34; lang&#34; 标签实际上是写的语言如英语,西班牙语,日语。 Microsoft的Visual Studio为&#34; lang&#34;的值提供了一个下拉列表。它们都像en-us,fr,ja等...用于英语美国,法语,日语等...

我认为可能是使用此标记的正当理由,如果您有复杂的多语言设置 - 可能有一个内容管理系统,可以支持这个,然后交付适当的javascript文件 - 比如jQuery控件资源?

答案 4 :(得分:0)

Type更通用,指的是脚本块的mime编码。据我所知,你只需要一个,通常这个块可以在没有类型或滞后属性的情况下工作。

我倾向于使用类型。

答案 5 :(得分:0)

lang是脚本的语言,type是脚本标记内容的MIME类型。

答案 6 :(得分:0)

基本上,这两个属性都不是必需的。使用它们的唯一原因是验证,这在HTML5中已经无效。