Подтвердить что ты не робот

<script></script> или <script/">?

Возможный дубликат:
Почему не работают самозакрывающиеся теги script?

Я только что нашел проводное поведение с тегом script в HTML.

I веб-сервер - nginx, и я использовал FAST CGI и PHP5. У меня есть page.html, который выглядит следующим образом:

<html>
  <body>
    <!-- <?php echo 'i am going to add php code here'; ?> -->
    <script type="text/javascript" src="./my/javascript1.js" />
    <script type="text/javascript" src="./my/javascript2.js" />
  </body>
</html>

Если эта страница обслуживается непосредственно с веб-сервера, java script работает хорошо. Но если он перешел на PHP5, кажется, что выполняется только первый тег java script. Но если я изменю блок script на:

    <script type="text/javascript" src="./my/javascript1.js"></script>
    <script type="text/javascript" src="./my/javascript2.js"></script>

Все работает снова. Заметили, как теги закрыты? Да, вот почему я спрашиваю здесь. В чем разница? Предполагается, что они должны иметь ту же функцию/смысл. Кроме того, выходной HTML-код, полученный моим веб-браузером (Chrome/IE9), является одним и тем же, но почему лечился иначе?

4b9b3361

Ответ 1

Тегу script нужен отдельный закрытый тег для правильного кода. См. http://www.w3.org/TR/html401/interact/scripts.html#h-18.2.1

Некоторые браузеры будут принимать теги, закрывающие закрытие, другие - не будут, и используемая вами версия HTML также влияет на результат. Если вы не используете XHTML, теги не закрываются.

Передача файла с помощью механизма PHP не должна изменять результат, но возможно, что он пытается исправить неправильные теги script. Вы должны просмотреть источник в браузере, чтобы узнать, были ли теги изменены.

Ответ 2

Тег

script должен иметь закрытый тег, даже если он использует атрибут src. избегая этого, вызывает нежелательное поведение.

Ответ 3

То, как ваш браузер интерпретирует ваш HTML, не имеет ничего общего с PHP, поскольку он НЕ является парсером HTML. Некоторые браузеры принимают это. другие не делают.... Также проверьте эту ссылку . для более Q & A о той же теме

Ответ 4

Похоже, ваш сервер настроен на вывод XHTML, а не HTML. HTML не имеет таких вещей, как <tag />. Но XML имеет их.

Проверьте декларацию типа документа в обоих случаях. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" и тому подобное в начале вашего документа.

Ответ 5

В основном это зависит от вашего DocType, указанного в HTML.

Если DocType упоминается transitional XHTML, то это не позволит закрывать тег script, как этот <script ... />. Это позволило бы закрыть тег таким образом. <script ... ></script> и т.д.

Если DocType является чем-то другим, кроме XHTML, в этом случае он будет зависеть от совместимости браузера.

Для справки см. это...

http://www.w3schools.com/tags/tag_doctype.asp