将插入符号位置设置为始终以 contenteditable div 结尾 [重复]

Posted

技术标签:

【中文标题】将插入符号位置设置为始终以 contenteditable div 结尾 [重复]【英文标题】:Set the caret position always to end in contenteditable div [duplicate] 【发布时间】:2013-04-20 06:58:00 【问题描述】:

在我的项目中,我试图将插入符号的位置始终设置到文本的末尾。我知道这是默认行为,但是当我们动态添加一些文本时,插入符号位置会更改为 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();
);

我尝试添加setStartsetEnd,如link 中所述,但没有用。

【问题讨论】:

***.com/questions/2871081/… 请检查这个。 @rahularyansharma 谢谢..但这不起作用。 (也许我做错了什么,因为我的 JS 很差)。 我也在检查。请给我一些时间。 @rahularyansharma 好的.... 嗯真的不行!!! 【参考方案1】:

感谢 Tim down :) 我得到了解决方案 here。问题是我在打电话

placeCaretAtEnd($('#result'));

代替

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

正如 jwarzech 在 comments 中提到的那样。

Working Fiddle

【讨论】:

太好了。找这个找了好久。很高兴找到可行的解决方案。 这里也一样,可以了,谢谢! 如果您添加另一个带有文本的嵌套跨度,则此小提琴不起作用,插入符号的焦点将进入嵌套跨度。

以上是关于将插入符号位置设置为始终以 contenteditable div 结尾 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

在 contenteditable div 中的特定位置设置插入符号位置

如何从 contenteditable 中获取“插入符号位置”?

更改 contenteditable 元素的 innerHTML 后,将插入符号放回原来的位置

如何使用 contentEditable 获取 iframe 中当前插入符号位置的像素偏移量

获取内容可编辑的插入符号位置

如何获取 ContentEditable 区域中的行数和当前插入符号行位置?