在Javascript contenteditable div中插入文本

Res*_*rer 9 javascript cursor contenteditable

我有一个问题,我需要在div中插入一个文本(字符串,可能有也可能没有html标签).它必须是一个div而不是textarea.

反正有吗?首先,我需要获取光标位置,然后将文本插入该位置.

它类似于函数insertAdjacentText,但它只能在标记之前或之后插入,并且只能在IE中使用.

请参阅此URL:http://yart.com.au/test/iframe.aspx.注意如何将光标定位在div中,我们需要在光标位置添加文本.

小智 11

如果你需要做的只是在当前选择/插入点插入HTML,那是可行的.脱离我的头脑(让你开始):

在IE中,使用document.selection.createRange().pasteHTML(theNewHTML).

在其他浏览器中,您应该能够使用document.execCommand("InsertHTML",...).

我只在可编辑的iframe /文档中使用了这些技术,而不是div,但是如果div是聚焦的话,这些调用应该有效,我相信.

另一个答案警告说,如果你想要更细粒度的控制,就像在其他地方插入文字一样,它会变得很难看.


kep*_*aro 7

范围和选择对象

使用选择范围对象.它们包含有关当前选择的各种信息,以及它在节点树中的位置.

公平警告: 做你所描述的事情并非完全不可能,但是如果你非常喜欢,你将陷入浏览器怪癖和不兼容的深层次.您将不得不进行大量的对象检测,检查以确保您获得一致的值和方法.在开发时逐步检查所有浏览器.祝好运!