将插入符号位置设置为始终以 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();
);
我尝试添加setStart
和setEnd
,如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 后,将插入符号放回原来的位置