Задать вопрос
EgoSab
@EgoSab
Web-developer

Не исполняется script вставленный с помощью append?

В поле input'а ввёл <script>alert(5)</script>, но всё отображается как текст и ничего не исполняется как решить?

<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Hacked</title>
</head>
<body>
    <input id="in" type="text">
    <button id="submit">Отправить</button>

    <script>
        let input = document.querySelector('#in');
        let button = document.querySelector('#submit');

        button.addEventListener('click', () => {
            let p = document.createElement('p');
            p.append(input.value);
            document.body.append(p);
        });

    </script>
</body>
</html>
  • Вопрос задан
  • 172 просмотра
Подписаться 1 Простой 1 комментарий
Решения вопроса 1
@alekcena
Нелинейный наставник
А почему он должен исполнятся ?
append - https://learn.javascript.ru/modifying-document
Он добавляет узлы или строки в конец node.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
zkrvndm
@zkrvndm
Архитектор решений
Для выполнения кода из строки вы можете использовать eval()
Берете текст из поля и пихайте в eval()
Ответ написан
Комментировать
@GrayHorse
const script = document.createElement("script");
script.textContent = `alert("#$!");`;
document.body.append(script);
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы