Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 26.08.2009, 02:11
TehnoMag
 
Сообщений: n/a

Нужна помощь по 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;


Проблема в том, что перетаскиваеться не весь текст а только отрывки.
Ответить с цитированием
  #2 (permalink)  
Старый 26.08.2009, 08:33
Новичок на форуме
Отправить личное сообщение для dyadya Посмотреть профиль Найти все сообщения от dyadya
 
Регистрация: 10.04.2009
Сообщений: 3

Цитата:
диф, в который изначально грузиться файл имеет параметр display: none, т.е. он невидимый.
display: none - блок временно удалён из документа и в настоящий момент времени в потоке не существует.

Попробуйте использовать visibility: hidden
Ответить с цитированием
  #3 (permalink)  
Старый 26.08.2009, 09:06
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от dyadya
display: none - блок временно удалён из документа и в настоящий момент времени в потоке не существует.
В потоке не существует, а в DOM-дереве существует.
Ответить с цитированием
  #4 (permalink)  
Старый 26.08.2009, 13:19
TehnoMag
 
Сообщений: n/a

Господа. В диве проблем нет никаких.
проблема в innerHTML, который обрезает html и php код.
для html он обрезает теги html head и body
а вот обрезку php я пока не полнял.
Есть ли свойство этемента div в JavaScript, чтобы получить доступ к тексту внутри него в виде Как есть?
Ответить с цитированием
  #5 (permalink)  
Старый 26.08.2009, 13:48
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

В диве не может быть ни PHP-кода, ни html, head, body. Пихайте все сразу в textarea.
Ответить с цитированием
  #6 (permalink)  
Старый 26.08.2009, 14:08
TehnoMag
 
Сообщений: n/a

окей. вот пример пихания сразу в техтарию

<textarea>
блаблаблаблабла
<textare>блаблабла</textarea> //Вывод в текстарию редактора обломиться здесь. При сохранении кстати он тоже сохранит до этой арии, т.е каждый раз открывая подобный скрипт мы дожны будем дописывать то, что не попало в него
блаблабла
</textarea>

А вот результат вывода прямо в textarea на скриншоте, для тех кто не видет в этом методе ни какой беды:
http://distrib.data.cod.ru/photos/5/...6a71bf1da5.jpg
Ответить с цитированием
  #7 (permalink)  
Старый 26.08.2009, 14:29
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Потому что передача html-кода посредством запихивания его в DOM-дерево, в общем случае, не лучшая идея. Экранируйте переводы строк и кавычки и передавайте обычной строкой.
Ответить с цитированием
  #8 (permalink)  
Старый 26.08.2009, 15:08
TehnoMag
 
Сообщений: n/a

Вопрос снят. Вышел из положения без 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("<", "&lt;", $str);
$str = str_replace(">", "&gt;", $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>";
}
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
нужна помощь в JavaScript михаил Общие вопросы Javascript 26 30.10.2013 12:07
Кроссдоменный GET запрос. Нужна помощь! notxcain AJAX и COMET 4 07.12.2008 20:55
нужна срочная помощь с jquery Hetfield jQuery 2 19.11.2008 21:45
Помощь по JavaScript за денюшку burglar Работа 1 31.10.2008 21:38
Срочно нужна помощь Гость Общие вопросы Javascript 2 02.09.2008 14:13