在网上看了很多用js在光标处插入文字的代码,很多都没有用,互抄而已,浪费时间。最近用到一个新方法,可以到达这个需求。IE支持document.selection,Firefox,Chrome,Safari以及Opera都有selectionStart和selectionEnd属性。
代码如下:
01 |
function insertText(obj,str) {
|
02 |
if (document.selection) {
|
03 |
var sel = document.selection.createRange();
|
05 |
} else if ( typeof obj.selectionStart === 'number' && typeof obj.selectionEnd === 'number' ) {
|
06 |
var startPos = obj.selectionStart,
|
07 |
endPos = obj.selectionEnd,
|
10 |
obj.value = tmpStr.substring(0, startPos) + str + tmpStr.substring(endPos, tmpStr.length);
|
11 |
cursorPos += str.length;
|
12 |
obj.selectionStart = obj.selectionEnd = cursorPos;
|
17 |
function moveEnd(obj){
|
19 |
var len = obj.value.length;
|
20 |
if (document.selection) {
|
21 |
var sel = obj.createTextRange();
|
22 |
sel.moveStart( 'character' ,len);
|
25 |
} else if ( typeof obj.selectionStart == 'number' && typeof obj.selectionEnd == 'number' ) {
|
26 |
obj.selectionStart = obj.selectionEnd = len;
|