将焦点设置到文本区域的末尾

4
editor.focus();

在Chrome中可以精细设置焦点,但在Firefox中,焦点设置在该行的开头。我希望它可以设置在该行的末尾。我尝试了以下方法:

moveCaretToEnd(ed);

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();
    }
}

糟糕,FF又出问题了,焦点不见了。


你能提供一个 jsfiddle 的演示吗? - Om3ga
1个回答

9
我用了以下的火狐浏览器技巧:
var value = editor.val();
editor.val("");
editor.focus();
editor.val(value);

这是一个可工作的JSFiddle示例链接:http://jsfiddle.net/vyshniakov/p37ax/

哈,我知道一定有一个简单的方法来做这件事。感谢你提供了如此好的答案! - Whatevo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接