Обязателен ли атрибут type для тегов <script>? - PullRequest
131 голосов
/ 16 ноября 2010

Я видел это:

<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 ]

125 голосов
/ 16 ноября 2010

Для HTML 4.x атрибут type равен , обязательный . ( W3 ):

Этот атрибут определяет язык сценариев содержимого элемента и переопределяет язык сценариев по умолчанию. Язык сценариев указывается как тип контента (например, «текст / javascript»). Авторы должны предоставить значение для этого атрибута. Для этого атрибута нет значения по умолчанию.

Для HTML 5 это необязательно . Если он не указан, по умолчанию используется text/javascript. ( W3 ): * * тысяча двадцать одна

Атрибут type предоставляет язык сценария или формат данных. Если атрибут присутствует, его значение должно быть допустимым типом MIME. Параметр charset не должен быть указан. По умолчанию, который используется, если атрибут отсутствует, это «text / javascript».

94 голосов
/ 16 ноября 2010

в HTML5 вам не нужен атрибут type, но в HTML <= 4 и (X) HTML он должен быть объявлен </p>

6 голосов
/ 21 мая 2014

Нет, атрибут 'type' не нужен в тегах. Если вы не хотите, чтобы ваш код проверял.

Мы опускали это годами на работе, и это никогда не было проблемой. Мы интенсивно тестируем на нескольких устройствах, в браузерах и т. Д. Это включает в себя различные типы документов HTML4 и XHTML.

Я создал эту маленькую страницу для тестирования на github: http://kenshub.github.io/script-type.html

6 голосов
/ 16 ноября 2010

В целях тестирования он БУДЕТ работать безрезультатно, но W3C требует его правильной проверки.Черновик HTML 5 не требует его как требования, но он все еще находится в черновой форме на W3C, и они не рекомендуют его.*

5 голосов
/ 27 марта 2018

Стандарт HTML 5.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

5 голосов
/ 16 ноября 2010

Согласно W3C требуется: http://www.w3.org/TR/REC-html40/interact/scripts.html

1 голос
/ 11 октября 2018

Атрибут type является обязательным в HTML4.01, но необязательным в HTML5. Тип показывает, какой тип должен быть проанализирован.

Источник: W3Schools MDN

ПРИМЕЧАНИЕ: если атрибут type представляет собой аудио, HTML, видео или любой другой тип MIME, кроме JavaScript, код НЕ будет выполнен.

0 голосов
/ 26 октября 2018

Хотя атрибут type не является необходимым, он полезен в большинстве случаев.IE прекрасно работает без этого, но иногда Chrome и FF вызывают проблемы, особенно если скрипт большой.Я столкнулся с проблемой с атрибутом типа при работе с плотно JS библиотеки.Без атрибута типа IE может показывать графики, кроме FF, Chrome и edge.После добавления атрибута типа Chrome и FF могут показывать диаграммы / графики

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...