В чем разница между атрибутами "lang" и "type" в теге скрипта? - PullRequest
12 голосов
/ 22 сентября 2008

Для <script> HTML-тегов, в чем техническая разница между lang=Javascript и type=text/javascript?

Я обычно использую оба, потому что я всегда предполагал, что более старые браузеры нуждаются в одном или другом.

Ответы [ 7 ]

30 голосов
/ 22 сентября 2008

По HTML 4.01 Spec :

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

язык : устарело. Этот атрибут определяет язык сценариев содержимого этого элемента. Его значение является идентификатором языка, но поскольку эти идентификаторы не являются стандартными, этот атрибут устарел в пользу типа.

3 голосов
/ 22 сентября 2008

<script language=""> может использоваться для обслуживания VBScript и различных версий Javascript.

Если вам не нужна конкретная версия Javascript, не используйте атрибут языка, без него ваш код будет работать как обычно.

Даже если вам нужна определенная версия Javascript для некоторой части кода, попробуйте проверить, существует ли эта функция, с проверкой (typeof window.blah.feature! = "Undefined").

Вот пример использования атрибута языка: http://bclary.com/2004/08/27/javascript-version-incompatibilities

Атрибут языка устарел из-за этого слабо определенного или неопределенного поведения.

Атрибут type полностью отличается. Он сообщает браузеру, какой тип MIME является сценарием, и всегда должен указываться в теге сценария.

2 голосов
/ 20 марта 2015

В ОП специально сказано «lang», а не «language». Гораздо более старый «языковой» тег был бы Javascript или VBScript.

Но текущий и, казалось бы, действительный "lang" тег на самом деле написан язык, такой как английский, испанский, японский. Microsoft Visual Studio предоставляет раскрывающийся список значений «lang», и они все похожи на en-us, fr, ja и т. Д. Для английского языка США, французского, японского и т. Д. *

Я думаю, что может быть вескими причинами для использования этого тега, если у вас сложная многоязычная настройка - может быть, есть система управления контентом, которая может это поддержать, а затем доставить соответствующий файл javascript - например, jQuery контролировать ресурсы?

2 голосов
/ 22 сентября 2008

язык - старый атрибут, тип - новый. Вам нужно будет использовать переходный (не совсем положительный, но вполне уверенный) тип документа, чтобы по закону использовать оба атрибута.

0 голосов
/ 25 февраля 2009

В принципе, ни один атрибут не является обязательным. Единственная причина их использования - проверка, которая стала недействительной в HTML5 .

0 голосов
/ 22 сентября 2008

lang - это язык скрипта, а type - это тип MIME содержимого тега скрипта.

0 голосов
/ 22 сентября 2008

Тип является более общим и относится к кодированию MIME блока скрипта. Насколько я знаю, вам нужен только один, и обычно блок будет работать без атрибутов type или lag.

Я склонен использовать тип.

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