Нужно ли выполнять санацию строк перед добавлением в DOM? - PullRequest
0 голосов
/ 20 мая 2009

В нашей команде нам пришла в голову мысль, что мы должны провести санацию строк перед добавлением в DOM. Мы ожидали, что, по крайней мере, двойные кавычки будут проблематичными, если их использовать в setAttribute, и <и>, если они будут добавлены к содержимому узла.

Первые тесты показали что-то другое. Мы используем innerHTML для установки содержимого узлов. Это позволяет избежать всех небезопасных персонажей. Но даже setAttribute экранирует <и>

Так всегда ли это так, потому что я ничего не смог найти в гугле? Я не знаю, есть ли какие-нибудь браузеры, которые потерпят неудачу.

1 Ответ

2 голосов
/ 20 мая 2009

innerHTML редактирует HTML-код внутри элемента и генерирует из него узлы DOM - вам нужно писать HTML в соответствии с обычными правилами (например, вы не можете использовать символ <, если за ним не следует символ без имени). Браузеры выполнят свое обычное восстановление после ошибок. </p>

Я не понимаю, почему ваш опыт использования innerHTML отличается от этого.

createTextNode, setAttribute и т. Д. Редактируют DOM напрямую. HTML не участвует, поэтому вам не нужно иметь дело с символами, которые имеют особое значение в HTML.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...