Написал функцию: просто вставляет в текст текстария теги смайликов:
<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 не хавает, и еще кто-то там тоже.. Помогите, плз.. Народ на форуме стонет..
Помогите чайнику! Простейший скрипт...:!:
Модератор: Duncon
- Oscar
- Сообщения: 963
- Зарегистрирован: 29 май 2004, 13:44
- Откуда: Мюнхен (рожден в Киеве)
- Контактная информация:
Код: Выделить всё
<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]
всего лишь упрощённый вариант
А FireFox? Тоже поддерживает?
Oscar, к сожалению, только вечером сегодня...
Мне кажеться что все работаетOscar писал(а):Andrewvp,
или не работает?
да нет, просто решение нашел в другом месте, а предложеный код не работает в Firefox...
Скорее всего по причине кривых рук (моих, ессно
)
т.к. страница формируется PHP, то броузер определяется на стадии формирования страницы, и проводить проверку в скрипте не надо.
для Firefox выдается следующий скрипт :
function smile(sml){
var txtarea = document.getElementById('ed1');
sml = ' ' + sml + ' ';
txtarea.value += sml;
}
недостаток - смайлик вставляется в конец текста. Т.к. заниматься плагиатом - неблагодарное занятие, засел за "матчасть". Думаю, своими руками писать будет лучше, потому как не могу даже вступить в дискуссию - нихрена не понимаю в теории "скриптов"
Скорее всего по причине кривых рук (моих, ессно

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