在网上看了很多用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; |