1. 选中TextArea中的文字或者位置后,黏贴内容并覆盖:
document.getElementById(textArea).focus();<span style="white-space:pre"> </span>//后面也必须加
var RangeObj = document.selection.createRange();//后面也必须加
RangeObj.Text = "需要黏贴的内容”;
2. 在选中范围之前(之后一样)黏贴:
RangeObj.Text = "内容“ + RangeObj.Text;
3. 自己设定选中范围:
RangeObj.collapse(); //将光标移到头
RangeObj.moveStart("character", -1); //先向前移动1位,向前必须用"-"
RangeObj.moveEnd("character”, 3); //再向后移3位
RangeObj.select(); //将移到的字符都选中
(如果之前已选中范围,IE下则鼠标必在前方,FireFox下鼠标必须在后方)
|..................................选择的文字................................|
- -
IE鼠标的位置,也可能是因为用了collapse FireFox的鼠标位置
4.返回鼠标位置:
RangeObj.moveToPoint(event.x, event.y);
RangeObj.moveStart("character", -obj.value.length);
RangeObj.text.length //就是鼠标的位置
5.返回光标位置:
function getPos(obj)
{
var ta = document.getElementById(obj);
ta.focus();
var workRange = document.selection.createRange(); //选择光标区域
ta.select();
var allRange = document.selection.createRange(); //选择TextArea的值
workRange.setEndPoint("StartToStart", allRange); //将TextArea开始到光标位置的区域选中
var len = workRange.text.length;
workRange.collapse(false);
workRange.select();
return len;
}
补充:
r1.setEndPoint("StartToStart", r2); //r1开始→r2开始
r1.setEndPoint("StartToEnd", r2); //r1开始→r2结束
r1.setEndPoint("EndToStart", r2); //r1结束→r2开始
r1.setEndPoint("EndToEnd", r2); <span style="white-space:pre"> </span>//r1结束→r2结束