JS在TextArea光标位置插入文字并实现移动光标到文字末尾
作者:
JS在TextArea光标位置插入文字+移动光标到文字末尾,Firefox,Chrome,Safari以及Opera都有selectionStart和selectionEnd属性,具体实现如下,感兴趣的朋友可以参考下哈
=IE支持document.selection
=Firefox,Chrome,Safari以及Opera都有selectionStart和selectionEnd属性
function insertText(obj,str) {
if (document.selection) {
var sel = document.selection.createRange();
sel.text = str;
} else if (typeof obj.selectionStart === 'number' && typeof obj.selectionEnd === 'number') {
var startPos = obj.selectionStart,
endPos = obj.selectionEnd,
cursorPos = startPos,
tmpStr = obj.value;
obj.value = tmpStr.substring(0, startPos) + str + tmpStr.substring(endPos, tmpStr.length);
cursorPos += str.length;
obj.selectionStart = obj.selectionEnd = cursorPos;
} else {
obj.value += str;
}
}
function moveEnd(obj){
obj.focus();
var len = obj.value.length;
if (document.selection) {
var sel = obj.createTextRange();
sel.moveStart('character',len);
sel.collapse();
sel.select();
} else if (typeof obj.selectionStart == 'number' && typeof obj.selectionEnd == 'number') {
obj.selectionStart = obj.selectionEnd = len;
}
}
<input type="button" onclick="insertText(document.getElementById('text'),' 新文字—YoyiorLee ')" value="插入文字"></input>
<input type="button" onclick="moveEnd(document.getElementById('text'))" value="移到末尾"></input>
=Firefox,Chrome,Safari以及Opera都有selectionStart和selectionEnd属性
复制代码 代码如下:
function insertText(obj,str) {
if (document.selection) {
var sel = document.selection.createRange();
sel.text = str;
} else if (typeof obj.selectionStart === 'number' && typeof obj.selectionEnd === 'number') {
var startPos = obj.selectionStart,
endPos = obj.selectionEnd,
cursorPos = startPos,
tmpStr = obj.value;
obj.value = tmpStr.substring(0, startPos) + str + tmpStr.substring(endPos, tmpStr.length);
cursorPos += str.length;
obj.selectionStart = obj.selectionEnd = cursorPos;
} else {
obj.value += str;
}
}
function moveEnd(obj){
obj.focus();
var len = obj.value.length;
if (document.selection) {
var sel = obj.createTextRange();
sel.moveStart('character',len);
sel.collapse();
sel.select();
} else if (typeof obj.selectionStart == 'number' && typeof obj.selectionEnd == 'number') {
obj.selectionStart = obj.selectionEnd = len;
}
}
复制代码 代码如下:
<input type="button" onclick="insertText(document.getElementById('text'),' 新文字—YoyiorLee ')" value="插入文字"></input>
复制代码 代码如下:
<input type="button" onclick="moveEnd(document.getElementById('text'))" value="移到末尾"></input>
您可能感兴趣的文章:
- JS在可编辑的div中的光标位置插入内容的方法
- js获取光标位置和设置文本框光标位置示例代码
- 用javascript获取textarea中的光标位置
- 用javascript获取当页面上鼠标光标位置和触发事件的对象的代码
- JavaScript 获取/设置光标位置,兼容Input&&TextArea
- javascript获得光标所在的文本框(text/textarea)中的位置
- textbox 在光标位置插入字符功能的js实现(兼容ie,firefox)
- javascript控制在光标位置插入文字适合表情的插入
- Javascript实现获取及设置光标位置的方法
- 往光标所在位置插入值的js代码
- js实现的光标位置工具函数示例