Я пытаюсь отформатировать плохой HTML для вывода в всплывающее окно. HTML хранится в поле в базе данных MySQL.
Я выполняю json_encode и htmlspecialchars в строке в php следующим образом:
$html = htmlentities(json_encode($row2['ARTICLE_DESC']));
и вызывая мою функцию makewindows, которая просто принимает html в качестве параметра и использует его сdocument.write следующим образом:
<p><a href='#' onclick=\"makewindows('".$html."'); return false;\">Click for full description </a></p>
Это работает нормально, так как в некотором html-коде создается, например, следующее:
http://www.nomorepasting.com/getpaste.php?pasteid=22823&seen=true&wrap=on&langoverride=html4strict
вставил туда, потому что я не знаю, как переносить строки в SO
Проблема в том, что htmlspecialchars, похоже, не удаляет плохие HTML-данные, так как всплывающее окно не создается. Я получаю ошибку с firebug
отсутствует) после списка аргументов
Однако html находится вне моего контроля.
Из того, что я прочитал, я делаю правильные шаги. Если я что-то упустил, что это?
Функция полного создания окон:
function makewindows(html){
child1 = window.open ("about:blank");
child1.document.write(html);
child1.document.close();
}