以下函数适用于所有主要浏览器,用于文本区域和文本输入:
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();
}
}
但是,您真的不应该在用户单击 textarea 时执行此操作,因为用户将无法使用鼠标移动插入符号。相反,当 textarea 获得焦点时执行。Chrome 中也存在一个问题,可以按如下方式解决:
完整示例:http : //www.jsfiddle.net/ghAB9/3/
HTML:
<textarea id="test">Something</textarea>
脚本:
var textarea = document.getElementById("test");
textarea.onfocus = function() {
moveCaretToEnd(textarea);
// Work around Chrome's little problem
window.setTimeout(function() {
moveCaretToEnd(textarea);
}, 1);
};