Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Тег скрипт через html (jQuery) ил innerHTML (https://javascript.ru/forum/misc/65141-teg-skript-cherez-html-jquery-il-innerhtml.html)

vettel 29.09.2016 12:21

Тег скрипт через html (jQuery) ил innerHTML
 
Здравствуйте.
Все MDN и наш сайт (https://learn.javascript.ru/basic-dom-node-properties) говорят о том, что скрипты, добавленные через метод innerHTML, выполнятся не будут. И я всегда в это верил.

Но тут по ходу работы я добавил через метод html jQuery тег скрипт. Ну допустим даже такое элементарное:
$('body').append('<script>alert(1)</script>')

и работает (через метод html тоже работает)! Почему?

Яростный Меч 29.09.2016 12:39

Цитата:

Сообщение от vettel
Почему?

Потому что jQuery обработал эту ситуацию специальным образом. Не просто добавил строку к innerHTML, а по честному создал скрипт.

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

vettel 29.09.2016 12:40

Что интересно, аналогичное через innerHTML не работает.Я думал, метод html у jQuery - просто абстракция над innerHTML, но неужели не так?

vettel 29.09.2016 12:42

Яростный Меч,
Спасибо!

warren buffet 29.09.2016 18:35

Поэтому лучше этой лайбой не пользоваться. Неизвестно, что она там наворотит без спроса.


Часовой пояс GMT +3, время: 19:19.