есть ли причина, по которой <script>должен иметь отдельный закрывающий тег? - PullRequest
2 голосов
/ 28 марта 2012

Для начала я знаю, что у меня должен быть тег </script>, и по этому поводу существуют вопросы. Вопрос не в том, нужен ли мне закрывающий тег. У меня вопрос: почему это было разработано таким образом?

Источником путаницы для меня является рассмотрение элемента <link /> - он, похоже, обладает аналогичными функциями (импорт внешних текстовых файлов и определение их типа), но имеет свойство самозакрывающегося (которое мы видим в других, но не в других). все типы элементов). Возможно, я слишком упрощаю, но не понимаю, почему один внешний элемент ссылки должен использовать стиль, который отличается от другого похожего (очевидно, не того же) внешнего элемента ссылки.

Похоже, это не изменится и в черновике HTML5. Я просто хочу понять причины, стоящие за этим, чтобы у меня было лучшее / более глубокое понимание базового HTML и почему он работает так, как он делает.

1 Ответ

7 голосов
/ 28 марта 2012

почему он был спроектирован таким образом?

У него должен быть явный конечный тег, потому что у вас может быть встроенный скрипт:

<script>
    foo();
</script>

Наличие запрещенного конечного тегане будет работать (с тех пор вы не могли иметь контент).Наличие необязательного конечного тега было бы более проблематичным, чем оно того стоит (поскольку элемент содержит CDATA… что может фактически сделать невозможным наличие необязательного конечного тега, я не знаю достаточно хорошо, чтобы сказать этот бит SGML).

Он не использует <link>, потому что это был продукт войн браузеров, а не то, что обсуждалось в W3C до его появления.

Похоже, это не тактакже измените черновик HTML5.

Он не будет обратно совместимым.

...