Страницы

Поиск по вопросам

суббота, 14 декабря 2019 г.

Экранировать отрезок HTML кода относитьельно родительского HTML

#html #html5


Такой вопрос: на страницу из базы данных выгружаются элементы HTML, но я хочу предусмотреть
то, что в базе данных HTML может быть не полным, к примеру, какой-то тег, например,
div или span не закрыт по какой либо причине, допустим так:

text
то, что первый div не закрыт при выгрузке из БД может вызвать проблему с тем? что он в любом случае закроется? но уже элементом из верстки, в которую будет вставлен это кусок HTML, и, вероятней всего, элементы основной верстки могут съехать. Можно ли каким-либо образом экранировать этот код, чтобы он отображался, но не влиял на остальной родительский HTML?


Ответы

Ответ 1



Решение 1: Лучше всего прямо на сервере приводить HTML в нормальный вид. Решение 2: Но если это не подходит предлагаю другое JavaScript решение. Изначально на странице этот возможно невалидный HTML вставляем в строку JavaScript. После загрузки страницы вставляем этот код в какой-то скрытый div в самом конце страницы. Потом извлекаем его посредством JavaScript innerHTML (или outerHTML по желанию), после извлечения код уже валидный. Вставляем куда надо. Решение 2.2: То же самое что в 2, но вставлять сразу в нужное место а не в конец HTML. Вот и рабочий код. document.getElementById("d1").innerHTML = d1html; .cl1 { background-color: red; }
hallow1
hallow2
Решение 3: Другое решение это вставлять код в iframe, разметка страницы не поедет, так как iframe экранирует код.

Ответ 2



Используйте Tidy
text
HEREDOC ; $tidy = new tidy(); $tidy->ParseString($html); $tidy->cleanRepair(); $html = $tidy->body(); echo $html->value; // будет напечатано: /*
text
*/

Комментариев нет:

Отправить комментарий