| 
 Как переместить курсор внутри тегов? Написал свой форум. Нарыл код JS вставки тегов в textarea. А вот как сделать, чтобы при вставке тегов курсор помещался посреди их? А то он в конец тегов перемещается... | 
| 
 Range, TextRange и Selection Создайте объект Range/TextRange с соответствующими границами и схлопните выделение. | 
| 
 Цитата: 
 | 
| 
 Внимательно читаем приведенную выше статью: Цитата: 
 Для IE: Цитата: 
 Цитата: 
 Для W3C-совместимых браузеров: Цитата: 
 Цитата: 
 | 
| 
 извините, что-то нифига не понял.... вот мой код вставки тегов в textarea: 
function add_tags(str1, str2)
{
   var obj=document.getElementById("memo1");
   obj.focus(); 
   
   if(document.selection) 
   {
      var s = document.selection.createRange();            
      s.text = str1 + s.text + str2;
   }else
   {
      var len = obj.value.length; 
      var start = obj.selectionStart; 
      var end = obj.selectionEnd; 
      var scrollTop = obj.scrollTop; 
      var scrollLeft = obj.scrollLeft; 
      var sel = obj.value.substring(start, end); 
      var rep = str1 + sel + str2; 
      obj.value =  obj.value.substring(0,start) + rep + obj.value.substring(end,len); 
      obj.scrollTop = scrollTop; 
      obj.scrollLeft = scrollLeft;    
   }
}
Помогите дописать его, чтобы при вставке тегов когда нет выделения, чтобы курсор после вставки находился между тегами. | 
| 
 Извените, но если вы не хотите немного подумать, за вас это никто делать не будет. | 
| 
 Цитата: 
 С Богом. | 
| 
 Оказывается, для W3C-совместимых даже не нужен объект Range, все еще проще: 
<textarea id="memo1" cols="25" rows="5">aaaa bbbb cccc</textarea>
<input type="button" onmousedown="add_tags('[b]', '[/b]')" onclick="restore_selection()" value="Bold" />
<script type="text/javascript">
var ie //@cc_on = true;
var range;
var textarea = document.getElementById("memo1");
function add_tags(str1, str2) {
	var text, offset;
	var selection = document.selection || getSelection();
	if(ie) {
		range = selection.createRange();
		text = range.text;
		range.text = str1 + text + str2;
		offset = str2.length;
		range.moveStart("character", -text.length - offset);
		if(text.length) {
			range.moveEnd("character", -offset);
		} else {
			range.collapse();
		}
	} else {
		var selStart = textarea.selectionStart; 
		var selEnd = textarea.selectionEnd;
		text = textarea.value;
		textarea.value = text.substring(0, selStart) + str1 + text.substring(selStart, selEnd) + str2 + text.substring(selEnd, text.length);
		offset = str1.length;
		textarea.selectionStart = selStart + offset;
		textarea.selectionEnd = selEnd + offset;
	}
}
function restore_selection() {
	textarea.focus();
	if(ie) {
		range.select();
	}
}
</script>
 | 
| 
 Octane, спасибо большое за код!!! работает! вы мне помогли. С Богом. | 
| Часовой пояс GMT +3, время: 09:38. |