Вставка тегов и смайлов - здесь готовое решение

Kill_Santa

Новичок
Вставка тегов и смайлов - здесь готовое решение

Выкладываю скрипт для вставки тегов и смайлов. Много времени потратил на поиск информации, много времени потратил на совершенствование скрипта.
РАБОТАЕТ во всех браузерах. Хочу облегчить вам труд!

PHP:
<script language="JavaScript">
function tag_it(txtstart,txtend) {
	document.editor_form.descr.focus();
	if (document.selection) {    
			var rng = document.selection.createRange();
			if (rng.text) {
				document.selection.createRange().text = txtstart + rng.text + txtend;
				} else {
				document.editor_form.descr.value += txtstart  + txtend;
				}
			document.editor_form.descr.focus();
			}
	else if (document.editor_form.descr.selectionStart || document.editor_form.descr.selectionStart == '0') {
	var selStart = document.editor_form.descr.selectionStart;
	var selEnd = document.editor_form.descr.selectionEnd; 
	var s = document.editor_form.descr.value;     
	s = s.substring(0, selStart) + txtstart + s.substring(selStart, selEnd) + txtend + s.substring(selEnd, s.length);
		document.editor_form.descr.value = s; 
	if (selEnd != selStart) {
		document.editor_form.descr.selectionStart = selStart;
		document.editor_form.descr.selectionEnd = selEnd + txtstart.length + txtend.length;
		} else {
		document.editor_form.descr.selectionStart = selStart + txtstart.length;
		document.editor_form.descr.selectionEnd = document.editor_form.descr.selectionStart;
		}
	} else {   
	document.editor_form.descr.value += txtstart + txtend;   
	}
	}
</script>

editor_form - имя формы
descr - имя textarea

использование:
PHP:
<input type="button" value="Ж" style="font-weight: bold;" onclick="tag_it('[b]','[/b]');">
<input type="button" value="К" style="font-style: italic;" onclick="tag_it('[i]','[/i]');">
<input type="button" value="_" onclick="tag_it('[u]','[/u]');">
..............................
<img src=".....takoy-to-smile...." onclick="tag_it('',':)');">
и так далее


ВНИМАНИЕ!!!!
здесь некорректно отображаются bb - смотрите код сообщения для получения правильного кода!!!
 

SelenIT

IT-лунатик :)
> РАБОТАЕТ во всех браузерах.

Но исключительно в Quirks mode. Ибо document.id_элемента.нечто - древнее зло (в общем случае некроссбраузерное), а уж имя вместо id - и подавно. И вообще, зачем постоянно повторять этот document.что-то, когда можно один раз сохранить ссылку на объект в переменной?
 

Kill_Santa

Новичок
когда я говорил, что работает во ВСЕХ браузерах, я не преувеличивал. name использовано сознательно.
Скрипт нравится именно тем, что он РАБОТАЕТ.

Если что-то не нравиться, может, предложите свою версию?
 
Сверху