Ingernirated
@Ingernirated
Романыч

Почему через input и innerHTML не проходит скрипт?

Господа, минуточку внимания.
Подскажите, почему, если создать тег <p> изначально в html документе и вписать туда скрипт, то он выполняется.
Но при попытке вкинуть его через input или добавить при создании p, система даёт сбой?
https://jsfiddle.net/ntoLk0nf/2/
  • Вопрос задан
  • 573 просмотра
Решения вопроса 3
ewgenio
@ewgenio
Всё по чуть чуть
Не пойму что вы хотите сделать.
Но скрипт через innerHTML не будет работать насколько я знаю
Есть два путя
1. eval()
2.
var g = document.createElement('script');
var s = document.getElementsByTagName('script')[0];
g.text = "document.body.style.backgroundColor = 'white';"
s.parentNode.insertBefore(g, s);
Ответ написан
document.querySelector(".p").innerHTML = "<sc" + "ript>document.body.style.backgroundColor = 'white';</sc" + "ript>";


Вот так же, ну

Почему так? Потому что

+ ко всему, через innerHTML скрипты не работают. Почему? Потому что
Ответ написан
Stalker_RED
@Stalker_RED
Вам уже дали ссылку на описание innerHTML. Чтобы от ваших занятий безопасностью был какой-то толк лучше еще разок пройтись по основам - почитать чем отличается innerHTML, appendChild и document.write, почитать про последовательность выполнения скриптов и даже про строки перечитать, потому что ваши плюсы в строке делают не то, что вы от них хотели.

Пример с append https://jsfiddle.net/1j92wmL8/
Пример с eval https://jsfiddle.net/7wLL94om/
Пример с document.write на jsfiddle некорректно сработает.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы