Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   текст в textarea (https://javascript.ru/forum/misc/1914-tekst-v-textarea.html)

m0t0d0r 05.10.2008 06:30

текст в textarea
 
Здравствуйте , помогите разобраться со вставкой текста .
В общем есть поле textarea и как на любом другом форуме ,есть кнопки для вставки тегов , по нажатию кнопки в поле появляются теги к примеру <b></b> , но если установить курсор между этими тегами и нажать на кнопку , то добавляться новые теги будут в конец строки . Вопрос как сделать , чтоб теги добавлялись в место указаное курсором . Я в javascript неселён , прошу объяснить попонятнее , а если можно , то статью почитать . Заранее спасибо .

magistr_bender 05.10.2008 21:34

кстати интересный вопрос.. если кто знает простое решение поделитесь)

Snipe 06.10.2008 11:26

Есть уже написанные скрипты, поищите.
В разных браузерах работает по разному, так что задачка не тривиальна.

Или откройте любой (ну или почти любой) форум, посмотрите, работает ли вставка так, как вам надо и посмотрите какими скриптами это реализовано.

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

Kolyaj 06.10.2008 14:54

http://forum.vingrad.ru/forum/topic-35775.html

m0t0d0r 06.10.2008 16:34

В общем , за эти выходные , я просмотрел кучу матерьала и пришёл к выводу , что для моей задачи проще оставить textarea в голом виде , без вставки тегов , но сказать пользователю , что некоторые доступны , а при обработке разрешить некоторые теги и смотреть , как их применяли , к сожалению для меня это проще , чем написать редактор , ну а если невтерпёж будет , то как сказал Snipe , воспользоваться готовым online редактором . Всем спасибо за помощ .

twolf 07.10.2008 13:24

аналогичная тема
http://javascript.ru/forum/misc/1873...-textarea.html

Сергей Т. 17.11.2008 12:38

По-моему то, что нужно:

<html>
<script>
function clc(){
var el=document.getElementById("area");
el.focus();
if (el.selectionStart==null){
	var rng=document.selection.createRange();
	rng.text="<b>"+rng.text+"</b>"
}
else{
	el.value=el.value.substring(0,el.selectionStart)+
    "<b>"+
	el.value.substring(el.selectionStart,el.selectionEnd)+
	"</b>"+
    el.value.substring(el.selectionEnd);
}
}

</script>
<body>
<textarea id="area" rows="20" cols="100">
text text text
</textarea>
<br />
<button onclick="clc()">Click</button>
</body>
</html>

m-mikle 18.05.2010 19:55

А как вставлять не в textarea, а в
<div contentEditable="true"></div>
?
value там нет(

TaskO 18.05.2010 20:54

innerHTML

m-mikle 18.05.2010 20:56

Я сейчас так и пытаюсь, но как вставить именно туда, где курсор?


Часовой пояс GMT +3, время: 04:10.