【发布时间】:2010-09-11 20:47:46
【问题描述】:
对于<script> HTML 标签,lang=Javascript 和type=text/javascript 之间的技术区别是什么?
我通常同时使用这两种方法,因为我一直认为旧版浏览器需要其中一种。
【问题讨论】:
对于<script> HTML 标签,lang=Javascript 和type=text/javascript 之间的技术区别是什么?
我通常同时使用这两种方法,因为我一直认为旧版浏览器需要其中一种。
【问题讨论】:
类型: 此属性指定元素内容的脚本语言并覆盖默认脚本语言。脚本语言被指定为内容类型(例如,“text/javascript”)。作者必须为此属性提供一个值。该属性没有默认值。
语言:已弃用。此属性指定此元素内容的脚本语言。它的值是语言的标识符,但由于这些标识符不是标准的,因此该属性已被弃用,取而代之的是类型。
【讨论】:
type 在 HTML 5 中不再需要。如果缺少,则默认值为 text/javascript。 (w3.org/html/wg/drafts/html/master/…)
<script language=""> 可用于为 VBScript 和不同版本的 Javascript 提供服务。
除非您需要特定版本的 Javascript,否则不要使用语言属性,没有它您的代码仍然可以正常工作。
即使您确实需要某些代码的特定 Javascript 版本,也请尝试使用 (typeof window.blah.feature != "undefined") 检查来测试该功能是否存在。
以下是语言属性的用法示例: http://bclary.com/2004/08/27/javascript-version-incompatibilities
由于这种定义松散或不确定的行为,不推荐使用语言属性。
type 属性完全不同。它告诉浏览器脚本是什么 mime 类型,并且应该始终在脚本标签中指定。
【讨论】:
OP 专门说“语言”而不是“语言”。更老的“语言”标签应该是 Javascript 或 VBScript。
但是 current 和看似有效的 "lang" 标签实际上是 书面 语言,如英语、西班牙语, 日本人。 Microsoft 的 Visual Studio 为“lang”的值提供了一个下拉列表,它们都类似于 en-us、fr、ja 等。对于英语美国、法语、日语等......
我认为如果您有一个复杂的多语言设置,可能是使用此标签的正当理由 - 也许有一个内容管理系统可以支持这一点,然后提供正确的 javascript 文件 - 比如jQuery控制资源?
【讨论】:
language 是旧属性,type 是新属性。您必须使用过渡(不是肯定的,但相当肯定)doctype 才能合法地使用这两个属性。
【讨论】:
Type 更笼统,指的是脚本块的 mime 编码。据我所知,您只需要一个,并且通常该块无需 type 或 lag 属性即可工作。
我倾向于使用类型。
【讨论】:
lang为脚本语言,type为脚本标签内容的MIME类型。
【讨论】:
基本上,这两个属性都不是必需的。使用它们的唯一原因是验证,这在 HTML5 中已失效。
【讨论】: