代码之家  ›  专栏  ›  技术社区  ›  Yarin

<script>标记是否需要'type'属性?

  •  129
  • Yarin  · 技术社区  · 14 年前

    我看到了这两种情况:

    <script src='http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js'></script>
    

    还有这个:

    <script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js'></script>
    

    类型属性有什么关系吗?

    8 回复  |  直到 14 年前
        1
  •  121
  •   Evan Mulawski    10 年前

    为了 HTML 4.x , the type 属性为 必修的 . ( W3 ):

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

    为了 HTML 5 是的。 可选择的 . 如果未指定,则默认为 text/javascript . ( W3 ):

    type属性提供脚本的语言或数据的格式。如果该属性存在,则其值必须是有效的mime类型。不能指定charset参数。如果属性不存在,则使用默认值“text/javascript”。

        2
  •  94
  •   Marco Demaio    12 年前

    在HTML5中,您不需要 type 属性,但在HTML<=4和(x)HTML中,应该声明

        3
  •  6
  •   James Thompson    14 年前

    出于测试目的,它将不起作用,但W3C要求它正确地进行验证。HTML5草案并不要求将其作为一项需求,但它仍然是W3C的草案形式,因此他们不建议这样做。

    不过,任何重要的浏览器都可以很好地解析它。

        4
  •  6
  •   yazzer    11 年前

    不,标记中不需要“type”属性。除非你想验证你的代码。

    我们在工作中已经忽略了很多年,这从来都不是问题。我们在多个设备、浏览器等上进行了大量测试,其中包括各种HTML4&xHTML文档类型。

    我为在Github上测试创建了这个小页面: http://kenshub.github.io/script-type.html

        5
  •  5
  •   tucaz    14 年前
        6
  •  4
  •   Scott C Wilson Joachim Kiørbye Bertelsen    7 年前

    HTML5.2标准(2017年底)建议您省略type属性。

    type属性允许自定义表示的脚本类型:

    省略该属性或将其设置为javascript mime类型,意味着该脚本是一个经典脚本,将根据javascript脚本的顶级产品进行解释。经典脚本受charset、async和defer属性的影响。 作者应省略属性 而不是重复地给出javascript mime类型。

    (强调我的)

    资料来源: https://www.w3.org/TR/html52/semantics-scripting.html#element-attrdef-script-type

        7
  •  1
  •   coder    6 年前

    类型属性在HTML4.01中是必需的,但在HTML5中是可选的。 类型显示要分析的类型。

    资料来源: W3Schools , MDN

    注意:如果type属性是audio、html、video或除javascript之外的任何mime类型,则不会执行代码。

        8
  •  0
  •   Balaramakrishna Rachumallu    6 年前

    尽管类型属性不是必需的,但在大多数情况下它是有用的。IE可以很好地解决这个问题,但是有时chrome和ff会引起问题,特别是如果脚本很大的话。 在处理Plotly JS库时,我遇到了类型属性问题。如果没有类型属性,IE就可以显示图形,但是有FF、Chrome和Edge。添加类型属性后,chrome和ff可以显示图表/图形