Неплохо ли иметь тег script внутри div?
Что плохого в том, что тег script внутри div внутри тела?
Я динамически обновляю div, чтобы перезагрузить javascript-код внутри div. Есть ли проблемы, о которых нужно беспокоиться?
Изменить
Поскольку @Bergi настаивал на том, чтобы видеть код. Вот он (см. Ниже). Этот div
(вместе с другими div
(s), содержащими элементы HTML презентации) обновляется через AJAX. Этот script
внутри div
содержит карты для обработки недавно загруженных элементов HTML на странице с необработанными данными.
<div>
<script type="text/javascript">
var namesMap = <dynamic string from server here>;
var addressesMap = <dynamic string from server here>;
</script>
</div>
Ответы
Ответ 1
Совершенно нормально размещать тег <script>
в любом месте документа.
От здесь,
Элемент SCRIPT помещает SCRIPT в документ. Этот элемент может появляться любое количество раз в HEAD или BODY документа HTML.
Однако, когда появляется тег <script>
, он приостанавливает разбор кода до тех пор, пока SCRIPT не будет загружен и не будет выполнен.
Ответ 2
Вы можете добавить <script></script>
внутри тега DIV. Просто проверьте w3c, это действительно HTML.
Ответ 3
В этом нет ничего плохого. Большинство виджетов работают таким образом. Он по-прежнему действителен HTML.
Если вы хотите встроить модуль AdSense на свою страницу, вам нужно будет это сделать. То же самое с виджетами Amazon. Это означает, что большинство сайтов имеют тег script внутри div.
Ответ 4
В SCRIPT внутри <DIV>
все еще работает.
Но некоторые раздражают ваш макет - shacking при прокрутке.
Лучшее решение: поместите SCRIPT внутрь <body>
или <head>
: D
Ответ 5
Есть плюсы и минусы для размещения сценариев внутри HTML. Хорошо, что маленький сценарий можно разместить рядом с местом его использования, чтобы вам было легче понять, что делает страница.
Если никому, кроме этого места, не нужен этот сценарий, то, я думаю, его можно поместить туда.
Плохо то, что когда вы разделяете части вашей программы на несколько мест, становится все труднее видеть и управлять тем, как такие части взаимодействуют и мешают друг другу. Принимая во внимание, что если вы храните ваши html и javascript в отдельных файлах, становится легче понять каждый независимо, а затем, наконец, сосредоточиться на том, как они взаимодействуют друг с другом. Каковы "интерфейсы" между ними.
Если JavaScript встроен в html, вы не можете организовать свой скрипт-код отдельно от организации HTML.
ОДНО БОЛЬШЕ, о чем следует знать: если у вас есть DIV, вы можете подумать, что вы можете манипулировать его содержимым, переназначая его innerHTML. И это работает, за исключением того, что вы не можете внедрить скрипт в DIV таким образом. СМ:
Можно ли вставлять скрипты с помощью innerHTML?
Итак, одна плохая вещь, связанная с наличием скрипта внутри DIV, заключается в том, что вы не можете заменить такой скрипт, переназначив его innerHTML.
Ответ 6
Хорошей практикой всегда было ставить теги <script></script>
в <head></head>
. Однако в последнее время появляются аргументы, ставят ли теги в конце тегов <body></body>
, непосредственно перед тем, как сделать страницу более быстрой.
Я бы рекомендовал поместить ваш <script></script>
в раздел <head></head>
вашего HTML-документа, так как он более предпочтителен. Кроме того, использование <script></script>
внутри DIV не является хорошей практикой.
Вы можете опубликовать свой пример для лучшего ответа об организации структуры вашего документа.
Подводя итог, нет проблем в том, что вы делаете. Но более организованный способ - это то, что я предлагаю.