当前位置: 首页 > 图文教程 > 网络编程 > Javascript > javascript在一段文字中的光标处插入其他文字

Javascript
xp风格菜单
具有edit功能的combobox
可以编辑的Select (第二版)
IE6.0打印机制解析
JScript5.5下String.prototype.replace(str,func)的UBB嵌套的递归解开。
vbscript和javascript互相调用方法
转换大写中文数字
Freeonline在线编辑器(自由软件)
对象化JS之----文件上传客户端控制脚本
对象化JS之----日期选择
对象化JS之----仿outlook或者QQ的菜单
如何使用Shell.Application技术
模拟windows control的进度条
双向链表&&堆栈
网页中的媒体播放器
如何在页面显示来访者分辨率,浏览器(js)
子父窗口之间的操作之小例子
JavaScript 实现日历式日期选择
页面上的javascript判断
在客户端用JAVASCRIPT或VBSCRIPT生成WORD文档

Javascript 中的 javascript在一段文字中的光标处插入其他文字


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-12   浏览: 70 ::
收藏到网摘: n/a

例如:一个文本框里有一段文字,我要通过点击鼠标并且在相应的地方插入文本
我是这样做的:先获得文本框的值TextArea.Value,然后.TextArea.Value+其他文本

<script type="text/javascript">
function setCaret(textObj){
if(textObj.createTextRange){
textObj.caretPos=document.selection.createRange().duplicate();
}
}
function insertAtCaret(textObj,textFeildValue){
if(document.all){
if(textObj.createTextRange&&textObj.caretPos){
var caretPos=textObj.caretPos;
caretPos.text=caretPos.text.charAt(caretPos.text.length-1)==''?textFeildValue+'':textFeildValue;
}else {
textObj.value=textFeildValue;
}
}else {
if(textObj.setSelectionRange){
var rangeStart=textObj.selectionStart;
var rangeEnd=textObj.selectionEnd;
var tempStr1=textObj.value.substring(0,rangeStart);
var tempStr2=textObj.value.substring(rangeEnd);
textObj.value=tempStr1+textFeildValue+tempStr2;
}else {
alert("This version of Mozilla based browser does not support setSelectionRange");
}
}
}
</script>
<form id="form1" action="" onsubmit="" method="post" enctype="text/plain">
<p>
<textarea name="tarea" rows="" cols="" style="width:300px;height:120px;" onselect="setCaret(this);" onclick="setCaret(this);" onkeyup="setCaret(this);">
Dnew.cn Dnew.cn
</textarea>
<br/><br/>
<input type="text" name="textfield" style="width:220px;" value="插入FireFox"/>
<br/>
<input type="button" value="插入" onclick="insertAtCaret(this.form.tarea,this.form.textfield.value);"/>
</p>
</form>