Ada*_*dam 17 javascript character caret cpu-word textrange
我有一个textarea,当我点击它时,我想将插入符号移动到最后一个字符 Something[caret]
function moveCaret(){
// Move caret to the last character
}
Run Code Online (Sandbox Code Playgroud)
<textarea onclick="moveCaret();">
Something
</textarea>
Run Code Online (Sandbox Code Playgroud)
据我所知,TextRange对象在某种程度上是可行的,但我真的不知道如何使用它
编辑:我很想看到纯粹的JavaScript解决方案,所以没有图书馆请.
Tim*_*own 40
对于textareas和文本输入,以下函数适用于所有主流浏览器:
function moveCaretToEnd(el) {
if (typeof el.selectionStart == "number") {
el.selectionStart = el.selectionEnd = el.value.length;
} else if (typeof el.createTextRange != "undefined") {
el.focus();
var range = el.createTextRange();
range.collapse(false);
range.select();
}
}
Run Code Online (Sandbox Code Playgroud)
但是,每当用户单击textarea时,您都不应该这样做,因为用户将无法使用鼠标移动插入符号.相反,当textarea获得焦点时,请执行此操作.Chrome中也存在一个问题,可以解决如下问题:
完整示例:http://www.jsfiddle.net/ghAB9/3/
HTML:
<textarea id="test">Something</textarea>
Run Code Online (Sandbox Code Playgroud)
脚本:
var textarea = document.getElementById("test");
textarea.onfocus = function() {
moveCaretToEnd(textarea);
// Work around Chrome's little problem
window.setTimeout(function() {
moveCaretToEnd(textarea);
}, 1);
};
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
17631 次 |
最近记录: |