Andre, не, не то. В твоем варианте тект не вставляется в сообщение, а заменяет его. У тебя в чате явно подругому делается. Впринципе, у меня есть скрипт, выковыренный непосредственно из форума.
Code |
<a class="postUser" href="javascript://" onClick="emoticon('$USERNAME$,');return false;">$USERNAME$</a> <script type='text/javascript'> var myVersion = parseInt(navigator.appVersion); var is_ie = ((myAgent.indexOf("msie") != -1) && (myAgent.indexOf("opera") == -1)); function emoticon(theSmilie) {doInsert(" " + theSmilie + " ", "", false);} function doInsert(ibTag, ibClsTag, isSingle) {var isClose = false; var obj_ta = document.addform.message; if ( (myVersion >= 4) && is_ie && is_win) {if(obj_ta.isTextEdit){ obj_ta.focus(); var sel = document.selection; var rng = sel.createRange(); rng.colapse; if((sel.type == "Text" || sel.type == "None") && rng != null)} else{if(isSingle) isClose = true; obj_ta.value += ibTag;}} else try {var txtStart = obj_ta.selectionStart; if(!(txtStart >= 0)) throw 1; var txtEnd = obj_ta.selectionEnd; if(ibClsTag != "" && obj_ta.value.substring(txtStart,txtEnd).length>0) { obj_ta.value = obj_ta.value.substring(0,txtStart) + ibTag + obj_ta.value.substring(txtStart,txtEnd)+ ibClsTag+ obj_ta.value.substring(txtEnd,obj_ta.value.length);} else {if(isSingle) isClose = true; obj_ta.value = obj_ta.value.substring(0,txtStart) + ibTag + obj_ta.value.substring(txtStart,obj_ta.value.length);}} catch(e) {if(isSingle) isClose = true; obj_ta.value += ibTag;} obj_ta.focus(); return isClose;} </script> |
Но помойму этот код слишком громоздкий, наверняка в нем есть что-то лишнее, и наверняка можно сделать рациональнее. Но как это зделать, я незнаю, т.к. в JS я почти что полный ноль. Поэтому и спрашиваю у вас.