Нужна помощь по JavaScript!!!
здравствуйте. Меня интересует такая проблемма.
Есть Простенький текстовый редактор <textarea> в нем должен отображаться HTML и PHP скрипты. Из-за проблеммы связанной в возможном появлении в texarea полей <textarea>тексе или функция</textarea. Написал небольшой обработчик на JavaScript. вот функция загрузки редактора function editfile() { if (!isset($_SESSION['editsite'])) { Header("Location: index.php"); } $result = sql_res_req("sites", "url='$_SESSION[editsite]'"); $out = mysql_fetch_row($result); if ($_GET['dir'] <> "") { $out[1] = $out[1]."/".$_GET['dir']; } print"Текстовый редактор. Открыт файл $_GET[editfile]<br>\n"; print"<a href=index.php?editsite&dir=$_GET[dir]>Закрыть без сохранения</a> - \n"; print"Сохранить<br>\n"; print"<div id=tbox class=screen>"; readfile($out[1]."/".$_GET['editfile']); print"</div>"; print"<textarea cols=100 rows=40 id=editor></textarea>"; print"<script language=JavaScript src=scripts/java/editor.js></script>"; } ?> диф, в который изначально грузиться файл имеет параметр display: none, т.е. он невидимый. Задача JavaScript`а перетащить содержимое дифа в текстарию вот сам скрипт var box = document.getElementById('tbox').innerHTML; document.getElementById('editor').value = box; Проблема в том, что перетаскиваеться не весь текст а только отрывки. |
Цитата:
Попробуйте использовать visibility: hidden |
Цитата:
|
Господа. В диве проблем нет никаких.
проблема в innerHTML, который обрезает html и php код. для html он обрезает теги html head и body а вот обрезку php я пока не полнял. Есть ли свойство этемента div в JavaScript, чтобы получить доступ к тексту внутри него в виде Как есть? |
В диве не может быть ни PHP-кода, ни html, head, body. Пихайте все сразу в textarea.
|
окей. вот пример пихания сразу в техтарию
<textarea> блаблаблаблабла <textare>блаблабла</textarea> //Вывод в текстарию редактора обломиться здесь. При сохранении кстати он тоже сохранит до этой арии, т.е каждый раз открывая подобный скрипт мы дожны будем дописывать то, что не попало в него блаблабла </textarea> А вот результат вывода прямо в textarea на скриншоте, для тех кто не видет в этом методе ни какой беды: http://distrib.data.cod.ru/photos/5/...6a71bf1da5.jpg |
Потому что передача html-кода посредством запихивания его в DOM-дерево, в общем случае, не лучшая идея. Экранируйте переводы строк и кавычки и передавайте обычной строкой.
|
Вопрос снят. Вышел из положения без JavaScript
вот код переписанной функции function editfile() { if (!isset($_SESSION['editsite'])) { Header("Location: index.php"); } $result = sql_res_req("sites", "url='$_SESSION[editsite]'"); $out = mysql_fetch_row($result); if ($_GET['dir'] <> "") { $out[1] = $out[1]."/".$_GET['dir']; } $fname = $out[1]."/".$_GET['editfile']; $f = fopen($fname, "r"); $str = fread($f, filesize($fname)); fclose($f); $str = str_replace("<", "<", $str); $str = str_replace(">", ">", $str); print"Текстовый редактор. Открыт файл $_GET[editfile]<br>\n"; print"<a href=index.php?editsite&dir=$_GET[dir]>Закрыть без сохранения</a> - \n"; print"Сохранить<br>\n"; print"<textarea cols=100 rows=30>$str</textarea>"; } |
Часовой пояс GMT +3, время: 07:45. |