[英]Javascript: Move caret to last character
我有一個文本區域,當我單擊它時,我想將插入符號移動到最后一個字符,所以Something[caret]
function moveCaret(){
// Move caret to the last character
}
<textarea onclick="moveCaret();">
Something
</textarea>
據我所知,使用TextRange對象可以做到這一點,但是我真的不知道如何使用它
編輯:我很想只看純JavaScript解決方案,所以請不要圖書館。
以下功能將在所有主要瀏覽器中適用於文本區域和文本輸入:
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();
}
}
但是,用戶每次單擊文本區域時都不應執行此操作,因為用戶將無法使用鼠標移動插入符號。 而是在文本區域獲得焦點時執行此操作。 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);
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.