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

时间:2013-04-26 07:14:09

标签: javascript jquery html position caret

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

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

以下是 fiddle

<div id="result" contenteditable="true"></div>
<button class="click">click to add text</butto>

var result = $('#result');
$('.click').click(function () {
    var preHtml = result.html();
    result.html(preHtml + "hello");
    result.focus();
});

我尝试添加此link中提及的setStartsetEnd,但没有用。

1 个答案:

答案 0 :(得分:19)

我得到了解决方案here感谢蒂姆下来:)。问题是我在打电话

placeCaretAtEnd($('#result'));

而不是

placeCaretAtEnd(($('#result').get(0));

如jwarzech在comments中提到的那样。

Working Fiddle