crips
Освоившийся
Дата регистрации:
18.12.2011 13:05:02
Сообщений: 28
Решил воспользоваться Вашим скриптом визуального редактора для редактирования страниц сайта.
Контент страниц храниться в базе.
Но с выводом контента в редактор возникают проблемы.
Допустим контент страницы таков:
<b>Текст</b>
<h1>Текст2</h1>
При выводе этого текста, редактор становится пустым,
но если оставить в контенте только одну строку, то все работает, т.е оставим <h1>Текст2</h1> и в редакторе появится заголовок h1.
Я так понял проблема заключается в переносе строк, но решить не могу.
PHP код вывода вставляю в пустую страницу.
<script type="text/javascript">
// Вывод кнопок редактирования
document.write("<input type='button' value='B' onclick='setBold()' />"
document.write("<input type='button' value='I' onclick='setItal()' />"
document.write("<br />"
document.write("<iframe width='100%' height='60%' scrolling='no' frameborder='no' src='#' id='frameId' name='frameId'></iframe>" // Добавляем iframe
/* В зависимости от браузера получаем доступ к созданному фрейму */
var isGecko = navigator.userAgent.toLowerCase().indexOf("gecko" != -1;
var iframe = (isGecko) ? document.getElementById("frameId" : frames["frameId"];
var iWin = (isGecko) ? iframe.contentWindow : iframe.window;
var iDoc = (isGecko) ? iframe.contentDocument : iframe.document;
/* Создаём код пустой HTML-страницы */
iHTML = '<html><head></head><body style="background: white; ">\
<?php
require_once "lib/functions.php";
$cont = getpagebody($_GET["page"]);
echo $cont["content"];
?>\
</body></html>';
iDoc.open(); // Открываем фрейм
iDoc.write(iHTML); // Добавляем написанный код в фрейм
iDoc.close(); // Закрываем фрейм
iDoc.designMode = "on"; // Включаем режим редактирования фрейма
/* Функции для задания внешнего вида выделенного текста
Полный набор возможных команд: http://javascript.itsoft.ru/execcom/execCommands.html */
function setBold() {
iWin.focus();
iWin.document.execCommand("bold", null, ""
}
function setItal() {
iWin.focus();
iWin.document.execCommand("italic", null, ""
}
/* Сохранение HTML-кода в поле hidden, чтобы потом можно было передать полученный HTML-код в скрипт-обработчик */
document.getElementById("content".value = iDoc.body.innerHTML;
</script>