Нужна помощь по 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, время: 00:58. |