#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Решение 3: Другое решение это вставлять код в iframe, разметка страницы не поедет, так как iframe экранирует код.hallow2Ответ 2
Используйте TidytextHEREDOC ; $tidy = new tidy(); $tidy->ParseString($html); $tidy->cleanRepair(); $html = $tidy->body(); echo $html->value; // будет напечатано: /**/text
Комментариев нет:
Отправить комментарий