<head><title>无标题文档</title></head><body>
<script language="javascript">function Insert(str) { 
var obj = document.getElementById('content'); 
if(document.selection) { 
obj.focus(); 
var sel=document.selection.createRange(); 
document.selection.empty(); 
sel.text = str; 
} else { 
var prefix, main, suffix; 
prefix = obj.value.substring(0, obj.selectionStart); 
main = obj.value.substring(obj.selectionStart, obj.selectionEnd); 
suffix = obj.value.substring(obj.selectionEnd); 
obj.value = prefix + str + suffix; 

obj.focus(); 

</script>
<table width="630" height="55" border="0" cellpadding="0" cellspacing="0">
<tr><td><label>
<textarea id="content" name="textarea" style="width:500px; height:120px;"></textarea>
</label></td></tr>
<tr><td width="567" align="left" >
<input type="button" style="cursor:hand" onclick="javascript:Insert('急')" value="急 " /> 
<input type="button" style="cursor:hand" onclick="javascript:Insert('发')" value="发 " /> 
<input type="button" style="cursor:hand" onclick="javascript:Insert('求')" value="求 " /> 
<input type="button" style="cursor:hand" onclick="javascript:Insert('回')" value="回 " /> 
<input type="button" style="cursor:hand" onclick="javascript:Insert('货')" value="货 " /> 
<input type="button" style="cursor:hand" onclick="javascript:Insert('至')" value="至 " /> 
<input type="button" style="cursor:hand" onclick="javascript:Insert('车')" value="车 " /> 
<input type="button" style="cursor:hand" onclick="javascript:Insert('到')" value="到 " /> 
<input type="button" style="cursor:hand" onclick="javascript:Insert('要')" value="要 " /> 
<input type="button" style="cursor:hand" onclick="javascript:Insert('在')" value="在 " /> 
<input type="button" style="cursor:hand" onclick="javascript:Insert('剩')" value="剩 " /> 
<input type="button" style="cursor:hand" onclick="javascript:Insert('空')" value="空 " /> 
<input type="button" style="cursor:hand" onclick="javascript:Insert('装')" value="装 " /> 
<input type="button" style="cursor:hand" onclick="javascript:Insert('占')" value="占 " /> 
<input type="button" style="cursor:hand" onclick="javascript:Insert('或')" value="或 " /> 
<input type="button" style="cursor:hand" onclick="javascript:Insert('节')" value="节 " /> 
<input type="button" style="cursor:hand" onclick="javascript:Insert('大')" value="大 " /> 
<input type="button" style="cursor:hand" onclick="javascript:Insert('小')" value="小 " /> 
<input type="button" style="cursor:hand" onclick="javascript:Insert('卸')" value="卸 " /> </td></tr>
</table>
</body>
</html>此代码有点问题,单击按钮,按钮的值就在文本域中显示,当你继续单击空白处后,再去单击按钮文本域中显示的文字不能随上次位置继续显示,而是在文本域的开始地方显示,求解!!!

解决方案 »

  1.   

    我又帮你发现个BUG:双击按钮会在头上出来文字
      

  2.   

    楼主说的问题只在IE中才存在,原因是IE中textarea获得焦点后光标的默认位置是开头而不是结尾处,只要在focus后把光标移到结尾处再插入文字就OK了,如下:<script language="javascript">
    function Insert(str) {  
    var obj = document.getElementById('content');  
    if(document.selection) {
    var len = obj.value.length;
    obj.focus();
    //接下来把光标移到结尾
    var sell = obj.createTextRange();
    sell.moveStart('character',len);
    sell.collapse();
    sell.select();
    var sel=document.selection.createRange();
    document.selection.empty();  
    sel.text = str;  
    } else {  
    var prefix, main, suffix;  
    prefix = obj.value.substring(0, obj.selectionStart);  
    main = obj.value.substring(obj.selectionStart, obj.selectionEnd);  
    suffix = obj.value.substring(obj.selectionEnd);  
    obj.value = prefix + str + suffix;  
    }  
    obj.focus();  
    }  
    </script>
      

  3.   

    纠正一下,不只IE,chrome、opera、sarafi也需要自己把光标移到最后。