Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Подскажите, как реализовать добавление текста в положение курсора textarea (https://javascript.ru/forum/events/17256-podskazhite-kak-realizovat-dobavlenie-teksta-v-polozhenie-kursora-textarea.html)

ArmagedDance 12.05.2011 14:47

Подскажите, как реализовать добавление текста в положение курсора textarea
 
Подскажите, как реализовать добавление html-разметки в положение курсора textarea.
ТО есть, если я выделяю фрагмент текста и жму на кнопочку, фрагмент обрамляется html-тегами, если в пустом месте щелкаю - просто вставляются html-теги форматирования.

Riim 12.05.2011 16:31

http://habrahabr.ru/blogs/javascript/55922/

жаль что fastcoder.org умер, это лишь одна статья оттуда (больше не удалось найти, кеш гугла тоже обновился), и в ней нет про Textarea#selectionStart & Textarea#selectionEnd .

Маэстро 13.05.2011 22:32

<script type="text/javascript">

function ModifySelection () 
{
var textarea = document.getElementById("myArea");
if ('selectionStart' in textarea) 
 {
 if (textarea.selectionStart != textarea.selectionEnd) 
  {
  var newText = textarea.value.substring (0, textarea.selectionStart) + 
                "[start]" + textarea.value.substring  (textarea.selectionStart, textarea.selectionEnd) + "[end]" +
                textarea.value.substring (textarea.selectionEnd);
                textarea.value = newText;
  }
 }
else 
 {  
 // IE до 9
 var textRange = document.selection.createRange ();
 var rangeParent = textRange.parentElement ();
 if (rangeParent === textarea) 
 textRange.text = "[start]" + textRange.text + "[end]";
 }
}
</script>

<body>
    <textarea id="myArea" cols="30" spellcheck="false">1111 22222 3333 выделите текст</textarea>
    <button onclick="ModifySelection ()">Обрамление</button>
</body>


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