Что конкретно не так с использованием свойства innerHTML?

  • 29 августа 2023 г. 6:56
Ответы на вопрос 2
Внимание, данный ответ содержит ошибку. Проблема не связана с кавычками, а с использованием свойства innerHTML для вставки HTML-кода. 

Использование свойства innerHTML имеет некоторые потенциальные проблемы:

1. Возможность XSS-атак: Если вставляемый HTML-код не был достаточно очищен от потенциально опасного контента, это может привести к возникновению XSS-уязвимостей.

2. Потеря состояния: Если вы используете innerHTML для обновления содержимого элемента, это полностью заменит его содержимое новым HTML-кодом. Это может привести к потере состояния элементов, с которыми пользователь уже взаимодействовал (например, формы ввода текста).

3. Потеря обработчиков событий: innerHTML не только заменяет содержимое элемента, но и удаляет все имеющиеся обработчики событий. Если у вас есть обработчики событий, привязанные к внутренним элементам, они перестанут работать после обновления innerHTML.

Чтобы избежать этих проблем, вы можете использовать другие методы для обновления содержимого элемента, такие как создание и добавление новых элементов с помощью методов createElement и appendChild, либо использование метода insertAdjacentHTML для вставки HTML-кода в заданную позицию внутри элемента.
1. Если есть запись, то выводим следующий контент:
```
<div>
    <p>Вы точно хотите удалить запись:</p>
    <table>
        <tr>
            <th>Порядковый номер записи:</th>
            <th>Номер шахты:</th>
            <th>Название шахты:</th>
            <th>Адрес шахты:</th>
            <th>ФИО директора:</th>
            <th>Номер телефона:</th>
        </tr>
        <tr>
            <td>${record.id_k1}</td>
            <td>${record.n_mine}</td>
            <td>${record.name_mine}</td>
            <td>${record.adress}</td>
            <td>${record.full_name_of_direcor}</td>
            <td>${record.phone_number}</td>
        </tr>
    </table>
    <button type="submit" name="submit" class="dle">Удалить запись</button>
</div>
```
2. Если запись не найдена, выводим сообщение "Записи с таким ID не найдено".
Похожие вопросы