Страница 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;
}
недостаток - смайлик вставляется в конец текста. Т.к. заниматься плагиатом - неблагодарное занятие, засел за "матчасть". Думаю, своими руками писать будет лучше, потому как не могу даже вступить в дискуссию - нихрена не понимаю в теории "скриптов"
