Синтаксис для объявления скриптов JS - PullRequest
3 голосов
/ 22 сентября 2008

Я не уверен, в чем разница между открытием JS-скрипта с

<SCRIPT language='JavaScript'>

или с:

<SCRIPT type="text/JavaScript">

Должен ли JavaScript всегда заключаться в кавычки (или с "", или с "), или это не очень важно?

Спасибо за любые разъяснения по этой теме!

Ответы [ 7 ]

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

Атрибут языка был использован в HTML 3.2. HTML 4.0 ввел тип (который согласуется с другими элементами, которые ссылаются на внешние носители, такие как <style>) и сделал его обязательным. Это также устарело язык.

Используйте тип . Не используйте язык .

В HTML (и XHTML) нет разницы между значениями атрибутов , разделенными одинарными или двойными кавычками (за исключением того, что нельзя использовать символ, используемый для разделения значения внутри значения без его представления с сущностью).

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

Обратитесь к верховному божеству Условные обозначения Дагласа Крокфорда в Javascript для всего сущего Javascript:

Файлы JavaScript

Программы JavaScript должны храниться и поставляются в виде файлов .js.

Код JavaScript не должен быть встроен в файлах HTML, если код не специфичные для одного сеанса. Код в HTML значительно увеличивает вес страницы без возможности смягчения кеширование и сжатие.

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

1 голос
/ 23 сентября 2008

Вам не нужен атрибут типа и языка при использовании внешнего файла JavaScript:

<script src="script.js" />

Ваш браузер автоматически определит, что делать, основываясь на расширении файла. Вам нужно type = "text / javascript" при создании блоков скриптов.

Edit:

Некоторые могут сказать, что это ужасно, но на самом деле это слова Yahoo! Евангелист JavaScript (я думаю, это был Дуглас Крокфорд) в контексте загрузки сайта.

Возможно, мне следовало бы немного уточнить.

Google был отличным примером нарушения стандартов, не нарушая рендеринг своего сайта. (Они теперь соответствуют стандартам W3C, используя JavaScript для отображения своих страниц). Из-за большой нагрузки на их веб-сайты они решили сократить свою разметку до минимума и использовать устаревшие теги, такие как страшные font и i .

Быть прагматичным не помешает. В пределах разумного, конечно:)

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

Старые браузеры поддерживают только язык - теперь правильный метод с использованием mimetype text / javascript

<script language="javascript" type="text/javascript">

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

<style type="text/css">

является еще одним примером включения чего-либо (таблицы стилей) с использованием правильного стандарта.

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

Согласно справке W3 HTML 4.01 , требуется только атрибут type. Атрибут langage не является частью ссылки, но я думаю, что он появился в более ранние дни, когда Microsoft боролась с Netscape.

Кроме того, простые кавычки недопустимы в XHTML 1.0 (разбор более ограничен). Это может не быть проблемой, но теперь вам всегда лучше проверить ваш html (либо HTML 4.01, либо XHTML 1.0).

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

Вы всегда должны заключать значения атрибутов в кавычки ("). Не используйте апострафы (').

Редактировать : Мнение здесь звучит как факт, мой плохой. Одиночные кавычки технически допустимы, но, по моему опыту, они, как правило, приводят к большему количеству проблем, чем двойные кавычки (среди прочего, они чаще встречаются в значениях атрибутов), поэтому я всегда рекомендую придерживаться последних. Ваш пробег может отличаться, хотя!

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

Используйте оба:

<script language="javascript" type="text/javascript">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...