首页 > 代码库 > selectionStart和selectionEnd属性

selectionStart和selectionEnd属性

在网上看了很多用js在光标处插入文字的代码,很多都没有用,互抄而已,浪费时间。最近用到一个新方法,可以到达这个需求。IE支持document.selection,Firefox,Chrome,Safari以及Opera都有selectionStart和selectionEnd属性。泗阳县民用航空局

代码如下:

view source
 
print?
01function insertText(obj,str) {
02    if (document.selection) {
03        var sel = document.selection.createRange();
04        sel.text = str;
05    } else if (typeof obj.selectionStart === ‘number‘ && typeof obj.selectionEnd === ‘number‘) {
06        var startPos = obj.selectionStart,
07            endPos = obj.selectionEnd,
08            cursorPos = startPos,
09            tmpStr = obj.value;
10        obj.value = http://www.mamicode.com/tmpStr.substring(0, startPos) + str + tmpStr.substring(endPos, tmpStr.length);
11        cursorPos += str.length;
12        obj.selectionStart = obj.selectionEnd = cursorPos;
13    } else {
14        obj.value += str;
15    }
16}
17function moveEnd(obj){
18    obj.focus();
19    var len = obj.value.length;
20    if (document.selection) {
21        var sel = obj.createTextRange();
22        sel.moveStart(‘character‘,len);
23        sel.collapse();
24        sel.select();
25    } else if (typeof obj.selectionStart == ‘number‘ && typeof obj.selectionEnd == ‘number‘) {
26        obj.selectionStart = obj.selectionEnd = len;
27    }
28}

selectionStart和selectionEnd属性