【问题标题】:What is the difference between "lang" and "type" attributes in a script tag?脚本标签中的“lang”和“type”属性有什么区别?
【发布时间】:2010-09-11 20:47:46
【问题描述】:

对于<script> HTML 标签,lang=Javascripttype=text/javascript 之间的技术区别是什么?

我通常同时使用这两种方法,因为我一直认为旧版浏览器需要其中一种。

【问题讨论】:

    标签: html scripting


    【解决方案1】:

    根据HTML 4.01 Spec

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

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

    【讨论】:

    【解决方案2】:

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

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

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

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

    由于这种定义松散或不确定的行为,不推荐使用语言属性。

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

    【讨论】:

      【解决方案3】:

      OP 专门说“语言”而不是“语言”。更老的“语言”标签应该是 Javascript 或 VBScript。

      但是 current 和看似有效的 "lang" 标签实际上是 书面 语言,如英语、西班牙语, 日本人。 Microsoft 的 Visual Studio 为“lang”的值提供了一个下拉列表,它们都类似于 en-us、fr、ja 等。对于英语美国、法语、日语等......

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

      【讨论】:

      • 这应该是正确的答案。 languagelang 是不同的属性。
      • 我最近了解到,建议使用 lang 来定义书面语言(英语、西班牙语等),以实现可访问性 - 例如屏幕阅读器。
      【解决方案4】:

      language 是旧属性,type 是新属性。您必须使用过渡(不是肯定的,但相当肯定)doctype 才能合法地使用这两个属性。

      【讨论】:

        【解决方案5】:

        Type 更笼统,指的是脚本块的 mime 编码。据我所知,您只需要一个,并且通常该块无需 type 或 lag 属性即可工作。

        我倾向于使用类型。

        【讨论】:

          【解决方案6】:

          lang为脚本语言,type为脚本标签内容的MIME类型。

          【讨论】:

            【解决方案7】:

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

            【讨论】:

              猜你喜欢
              • 2011-08-13
              • 2014-02-15
              • 1970-01-01
              • 1970-01-01
              • 2015-05-19
              • 2015-04-15
              • 2010-09-16
              相关资源
              最近更新 更多