将插入位置始终设置为以可信的div结束

Mr_*_*een 11 html javascript jquery position caret

在我的项目中,我试图将插入位置始终设置为文本的末尾.我知道这是默认行为,但是当我们动态添加一些文本时,插入符号位置会更改为Chrome和firefox中的起点(IE很好,太棒了).

无论如何要使它在chrome和firefox中正常工作?

这是小提琴

<div id="result" contenteditable="true"></div>
<button class="click">click to add text</butto>
Run Code Online (Sandbox Code Playgroud)
var result = $('#result');
$('.click').click(function () {
    var preHtml = result.html();
    result.html(preHtml + "hello");
    result.focus();
});
Run Code Online (Sandbox Code Playgroud)

我尝试添加,setStartsetEnd在此链接中提到,但没有用.

Mr_*_*een 21

我得到了解决感谢Tim下来:).问题是我在打电话

placeCaretAtEnd($('#result'));
Run Code Online (Sandbox Code Playgroud)

代替

placeCaretAtEnd(($('#result').get(0));
Run Code Online (Sandbox Code Playgroud)

正如jwarzech在评论中提到的那样.

工作小提琴