javascript在一段文字中的光标处插入其他文字
程序员文章站
2023-11-22 08:40:28
例如:一个文本框里有一段文字,我要通过点击鼠标并且在相应的地方插入文本 我是这样做的:先获得文本框的值textarea.value,然后.textarea.value+其他...
例如:一个文本框里有一段文字,我要通过点击鼠标并且在相应的地方插入文本
我是这样做的:先获得文本框的值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>
我是这样做的:先获得文本框的值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>