Страница 1 из 1

Помогите чайнику! Простейший скрипт...:!:

Добавлено: 03 апр 2006, 00:26
Andrewvp
Написал функцию: просто вставляет в текст текстария теги смайликов:

<script language='javascript'>
function smile(sml){
e1 = document.getElementById('ed1');
e1.focus();
document.selection.createRange().text=sml;
}
</script>
---------------------------------------
<textarea rows='20' id='ed1' name='A2' cols='55'>
--------------------------------------------------------------
[url=javascript:smile(':)')][img]smiles/smile_.gif[/img][/url]


И теперь это творение гения работает только в IE. FireFox не хавает, и еще кто-то там тоже.. Помогите, плз.. Народ на форуме стонет..

Добавлено: 03 апр 2006, 03:01
Oscar

Код: Выделить всё

<script type="text/javascript">

function addSmile(smile) {

	var txtarea = document.getElementById('editText');
	txtarea.focus();


	//if NN
	if (document.getSelection) {
		mozWrap(txtarea, smile);
	}

	//if IE
	else if (document.selection && document.selection.createRange) {
		document.selection.createRange().text = smile;
	}

}

function mozWrap(txtarea, smile) {

   var scrollPos = txtarea.scrollTop; 

   var selLength = txtarea.textLength;
   var selStart = txtarea.selectionStart;
   var selEnd = txtarea.selectionEnd;

   if (selEnd == 1 || selEnd == 2)
                    selEnd = selLength;

   var firstPart = (txtarea.value).substring(0, selStart);
   var lastPart = (txtarea.value).substring(selEnd, selLength);

   txtarea.value = firstPart + smile + lastPart;

   txtarea.setSelectionRange(selStart, selStart + smile.length);

   txtarea.scrollTop = scrollPos;

}

</script>

<textarea  id="editText" rows="20" cols="55">test test test</textarea>


[url=javascript:addSmile(':)')]SMILE[/url]
(c) Morfius, forum/viewtopic.php?t=5762

всего лишь упрощённый вариант

Добавлено: 03 апр 2006, 07:54
Andrewvp
А FireFox? Тоже поддерживает?

Добавлено: 03 апр 2006, 09:44
Oscar
Andrewvp,

во-первых, угу,

а во-вторых, сложно проверить? или не работает?

Добавлено: 03 апр 2006, 10:11
Andrewvp
Oscar, к сожалению, только вечером сегодня...

Добавлено: 06 апр 2006, 13:31
StarLey
Oscar писал(а):Andrewvp,
или не работает?
Мне кажеться что все работает

Добавлено: 06 апр 2006, 21:42
Andrewvp
да нет, просто решение нашел в другом месте, а предложеный код не работает в Firefox...
Скорее всего по причине кривых рук (моих, ессно :) )

т.к. страница формируется PHP, то броузер определяется на стадии формирования страницы, и проводить проверку в скрипте не надо.

для Firefox выдается следующий скрипт :
function smile(sml){
var txtarea = document.getElementById('ed1');
sml = ' ' + sml + ' ';
txtarea.value += sml;
}
недостаток - смайлик вставляется в конец текста. Т.к. заниматься плагиатом - неблагодарное занятие, засел за "матчасть". Думаю, своими руками писать будет лучше, потому как не могу даже вступить в дискуссию - нихрена не понимаю в теории "скриптов" :)