Вывод типа = "text/javascript" language = "javascript"

Большинство тэгов script, которые я создаю, всегда включаю type="text/javascript" language="javascript" в тег. Мой босс, однако, этого не делает. Иногда он исключает оба, иногда просто language=javascript даже без кавычек

Теперь у нас не было проблемы ни в одном из основных браузеров с его тегами. Я говорю обо всех версиях IE, FF, Safari и Chrome.

Лично я чувствую, что это лень и просто совершенно неправильная и плохая практика кодирования, чтобы оставить такие вещи, даже если они работают без него.

Кто-нибудь знает, должны ли они быть включены или только один или это нормально оставить оба в ASP.NET?

Ответ 1

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

Для документа типа HTML5 ему больше не требуется. Например: мы оставляем это на страницах здесь в Stack Overflow. Если вы используете HTML-тип документа, то он полностью опциональен и по умолчанию имеет значение text/javascript, поэтому вы полностью прекратите его в любом текущем (или даже очень старом) браузере. Реально это было верно и в HTML4, но не строго корректном HTML.

Для документа типа HTML4 (действителен) вам нужно. Для того, чтобы браузер действительно функционировал, он не является строго необходимым и будет вести себя отлично (это было верно вплоть до Netscape 2), но это будет недействительным HTML. Если у вас есть doctype HTML4, то держите его и действуйте - потому что эй, почему бы и нет?


Оригинальный ответ:

Я бы использовал type="text/javascript", чтобы быть в безопасности во всех существующих браузерах, почему оставить там двусмысленность, чтобы сохранить 21 символ? language="" однако устарел, я бы не стал его.

Кроме того, любой валидатор собирается выдать ошибку, хотя он, вероятно, будет работать внутри браузера (если вы не имеете дело с чем-то очень старым).

Ответ 2

Согласно w3c spec, требуется type. Итак... хотя большинство браузеров будут достаточно прочными, чтобы работать без корректного указания type, это хорошая практика явно установить его на text/javascript.

Ответ 3

Рекомендация W3C для HTML5 говорит, что вам не нужно включать

type="text/javascript"

Браузер предполагает, что это текст /javascript, если иное не указано как другой тип.

http://dev.w3.org/html5/spec/Overview.html#the-script-block-s-type

Ответ 4

Дуглас Крокфорд, один из великих авторитетов и учителей Javascript, это сказать:

language="javascript"

Этот атрибут устарел. Это был использован для выбора другого программирования языков и конкретных версий JavaScript. Вам это не нужно. не используйте его.

type="text/javascript"

Этот атрибут является необязательным. поскольку Netscape 2, программирование по умолчанию язык во всех браузерах был JavaScript. В XHTML этот атрибут требуется и не требуется. В HTML, лучше оставить его. браузер знает, что делать.

Ваш босс может делать это по "правильным" или "неправильным" причинам (т.е. он может следовать совету Крокфорда, или он может просто быть ленивым), но я не думаю, что вы можете сделать суждение. Если остальная часть его HTML и JS неаккуратная, это еще одна вещь. Я бы рискнул, что содержимое тега script может быть более религиозным, например, размером табуляции или размещением скобок.

Изменить: @coffeeaddict указал, что не помещать правильные атрибуты в тег помешает его компиляции. Я бы сказал, что козыри все соображения о том, являются ли атрибуты строго правильными или необходимыми, потому что проекты должны всегда строить чисто без ошибок или предупреждений. То же самое касается валидаторов и т.д., Если они являются частью стандартного проекта.

Ответ 5

Если документ анализируется как HTML5, язык будет по умолчанию JavaScript, и никакой атрибут любого типа не требуется (для справки в будущем в HTML5 нет атрибута языка).

Если вы используете HTML 4.x или XHTML 1.x, язык скриптов по умолчанию предположительно определяется из значения заголовка Content- Script -Type, независимо от того, присутствует ли он локально в метатеге META/meta ( высокий приоритет) или как HTTP-заголовок (низкий приоритет). Атрибут type по-прежнему требуется HTML 4.x, даже если заголовок Content- Script -Type присутствует (локально или иначе), поскольку язык сценариев по умолчанию влияет только на то, как обрабатываются значения таких атрибутов, как onload, onclick и т.д., Атрибут type с текстом /javascript, поскольку значение должно использоваться в случае JavaScript вместо атрибута языка, если вы не пользуетесь старыми браузерами (например, IE4, NN4, возможно, IE5/Mac?), Помните, что версия IE6 для Windows 98, поэтому атрибут языка определенно устарел).

Один последний бит информации: технически говоря, application/x-javascript - правильное значение для JavaScript (если только оно не стало приложением /javascript, если я не знаю), но, к сожалению, text/javascript - это тот, который имеет наибольшую поддержку в терминах совместимость с несколькими браузерами.

Ответ 6

ASP.NET ничего не имеет к делу. xhtml 1.0 диктует, что вы используете type = "text/javascript", с кавычками, иначе вы не создаете действительный xhmtl.

Запустите w3c validator на своих страницах и, пожалуйста, соблюдайте его.