Сделал загрузку фотографий на аяксе без перезагрузки страницы с использованием тега iframe. Вместе с фотографией загружается еще и текст. Сам скрипт, который производит загрузку фото на сервер и текста в базу данных отрабатывает нормально и вызывает функцию, в качестве параметра которой передает json-строку jsOnResponse("{'id':'" . $lastId . "', 'text':'" . $text . "', 'filename': '" . $fileName . "', 'success':'" . $success . "'}"); . В этом json-объекте содержится файл только загруженный и текст только что записанный в БД. Вот код этой функции:
function jsOnResponse($obj)
{
echo '
<script type="text/javascript">
window.parent.onResponse("'.$obj.'");
</script>
';
}
То есть этот PHP скрипт вызывает js функцию, которая сразу после загрузки выводит тут же эту картинку только что загруженную и текст. Вот код этой функции:
function onResponse(d) {
eval('var obj = ' + d + ';');
alert('Файл ' + obj.filename + (obj.success ? " " : " НЕ ") + "загружен.");
var parentDiv = document.getElementById("vkPostsListing");
parentDiv.className = 'oneVKPost';
var all_tags = parentDiv.getElementsByTagName('div')[0];
var container = document.createElement('div');
container.innerHTML = "<p class='vktext'>" + obj.text + "</p><p class='vkimage' ><img src='/images/vkimages/" + obj.filename + "'></p>";
parentDiv.insertBefore(container, all_tags);
}
Всё работает нормально картинка и текст выводятся как надо, если только в тексте нет переноса строки. Если же в тексте содержится перенос строки, то файл и текст загружаются на сервер, но не выводятся, то есть js скрипт не дорабатывает. Консоль js показывает ошибку Uncaught SyntaxError: Unexpected token ILLEGAL. JS скрипт onResponse вообще получается не срабатывает, то есть всё затыкается именно на нем. Подскажите пожалуйста кто сталкивался с подобным, в чем может быть дело. Или остается только смириться с этим?