Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: textarea
 
 автор: Dimon.St   (20.01.2006 в 00:37)   письмо автору
 
 

Здравствуйте, подскажите как занести код из переменной в textarea сохраняя переходы на новую строку?
Теоритически:

<input type=button onclick="qqq.innerHTML='text \n text'">
<textarea id=qqq></textarea>

Пробовал под виндозъ \r\n, но тоже не работает...
Зарание спасибо...

   
 
 автор: 12345   (20.01.2006 в 00:43)   письмо автору
 
   для: Dimon.St   (20.01.2006 в 00:37)
 

document.getElementById('qqq').value='text \n text'";

   
 
 автор: Евгений Петров   (20.01.2006 в 00:51)   письмо автору
 
   для: Dimon.St   (20.01.2006 в 00:37)
 

Поменяйте innerHTML на innerText

   
 
 автор: Dimon.st   (20.01.2006 в 12:24)   письмо автору
 
   для: Dimon.St   (20.01.2006 в 00:37)
 

Везде палка о двух концах:
использовать innerText противопоказано, так как моя нелюбимая "лисичка", также как и любая другая версия nn, устроит забастовку...
а насчет ".value=" может и вариант, но не совсем, ибо тогда возникает проблемма с:


<textarea id=qqq></textarea> 

<SCRIPT LANGUAGE="JavaScript">
<!--
document.getElementById('qqq').value="&#34;";
//-->
</SCRIPT>


да и еще прикол в том что следующий код работает...:

<input type=button onclick="document.getElementById('qqq').value='&quot;' "> 


Какие есть варианты кроме писать в яве замены всех возможных символов на соответствующие?

   
 
 автор: 12345   (20.01.2006 в 12:45)   письмо автору
 
   для: Dimon.st   (20.01.2006 в 12:24)
 

<xmp>&#34;</xmp> работает (в смысле показа непреобразованного). Но в нём будут проблемы длинных строк, которые он не заворачивает.

   
 
 автор: Dimon.st   (20.01.2006 в 13:19)   письмо автору
 
   для: 12345   (20.01.2006 в 12:45)
 

Возможно я некорректно объяснил или что-то не понял, но мне бы хотелось, чтобы он наоборот преобразовывал символы типа &#34; к нормальному виду, то есть в данном случае к " и при этом это было в текстареи(аналогично в инпуте), но нехороший браузер делать этого там где нужно нехочет...

   
 
 автор: 12345   (20.01.2006 в 14:27)   письмо автору
 
   для: Dimon.st   (20.01.2006 в 13:19)
 

Так textarea преобразовывает. Ещё заметил особенность (IE, FF, Opera), что
<TEXTarea id=qqq>ee</textarea>
<input type=button onclick="document.getElementById('qqq').value='&#34;';document.getElementById('qqq1').innerHTML='&#34;' ">
<xmp id=qqq1>ee</xmp>
если загружать xmp кодом JS, то xmp тоже преобразовывает кодовую нотацию символов в символы. В этом примере у меня в обеих полях появляется ' " '.

Кроме того, Opera и FF заворачивают xmp со стилем, а IE нет
<xmp style=white-space:normal;display:block>&#34; шшшшшшшшшшшшшшшшшшшшшшшшшшшшшшшшшшш шшшшшшшшшшшшшшшшшшшшшшшшшшшшшшшшшшш шшшшшшшшшшшшшшшшшшшшшшшшшшшшшшшшшшш шшшшшшшшшшшшшшшшшшшшшшшшшшшшшшшшшшш шшшшшшшшшшшшшшшшшшшшшшшшшшшшшшшшшшш шшшшшшшшшшшшшшшшшшшшшшшшшшшшшшшшш чхххххххххххххххххххххххххххххххххх хххххх ххххххххххххххххххххххххххххххххххх ххх хххххххххххххххххххххххххххххххххх ххххххххххххххххххххххххххххххххххх хххххххххх ххххххххххххххххххххххххххххххххххх ххххххххххх ххххххххххххххххххххххххххххх хххххххххххххххххххххххххххх</xmp>
(Была тут похожая тема о том, как наиболее однозначно передать код в тег.) В общем, различия на каждом шагу.

   
 
 автор: Dimon.st   (20.01.2006 в 16:32)   письмо автору
 
   для: 12345   (20.01.2006 в 14:27)
 

Весьма интересно, хотя и странно, хтмл опять лагает причем везде поразному..)
Однако есть какие-нибудь идеи как написать:

<textarea id=qqq></textarea> 

<SCRIPT LANGUAGE="JavaScript"> 
<!-- 
MYMEGAVAR="&#32;&#33;&#34;&#34;&#36;&#37;&#38;&#39;&#40;&#41;&#42;&#43;..."
document.getElementById('qqq').value=MYMEGAVAR;
//текстареа записанно &#32;&#33;&#34;&#34;&#36;&#37;&#38;&#39;&#40;&#41;&#42;&#43;...
//я хочу чтоб там было !""$%&'()*+...
//--> 
</SCRIPT> 


Может есть какая-ниб функция конвентирования символов (я поискал, таковую не нашел)...

   
 
 автор: 12345   (20.01.2006 в 17:35)   письмо автору
 
   для: Dimon.st   (20.01.2006 в 16:32)
 

Нашёл интересный метод, но запрещающий использовать оба вида кавычек в виде html-кодов (&#34, &amp; ...). Если эту строку определить в тексте html, а не JS, они автоматически перекодируются - см.

<input type=button onclick="document.getElementById('qqq').value='&#40;&#41;&#42;&#43;...text \n text';">

Из функций перекодировки есть только для работы с URL (%20%AC -> " ...")

А чтобы по-честному и полноценно работать с кодами, надо перекодировать строки - с использованием RegExp. (http://wdh.suncloud.ru/js05.htm - Регулярные выражения (JS))

Интересно, откуда такая задача? Надо без передачи на сервер посмотреть, что будет? Из задачи истекают методы обработки. Вот, я написал рег.выр для кодов, а ведь ещё есть символьные кодв - &lt; ... , они не обрабатываются. Проще innerHTML c обработкой \n , но что может встретиться кроме? Переносы строк могут? Только для \n рег.выр. получается
Cтрока.replace(/\n/g,'<br>') .
Причём, напрямую он не работает - даёт ошибку в IE. Делаем опосредованно - сначала в див, потом в т-арию. Видим целый ряд оригинальностей. Про FF вообще молчу, там свой ряд.. Во-первых, там не работает innerHTML в textarea . И правильно. Но при исполнении такого кода
<TEXTarea id=qqq cols=70>ee</textarea><br>
<div id=qqq2>[][]</div> 
<br>
<SCRIPT>
function ff(){re=new RegExp('\n','g');
    document.getElementById('qqq2').innerHTML=MYMEGAVAR.replace(re,'<br>\n');
    document.getElementById('qqq').value=document.getElementById('qqq2').innerHTML
}
</SCRIPT><input type=button onclick="ff()">
получаем, что буквы отображаются, а > превращаются в &gt; (FF), а также & -> &amp; Второе - &lt; сохраняются в IE в данном примере, а лучшие (правильные) результаты в нём даёт innerText ( document.getElementById('qqq').value=document.getElementById('qqq2').innerText ).

В общем, особенностей масса, поэтому важно знать конкретную задачу. Изначально она звучала совсем не так всеохватно.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования