1

我正在使用带有 javascript 的 execCommand 将文本插入到可编辑的 iframe 中,如下所示:

element.execCommand("insertHTML",false,"some text");

任何人都知道如何插入该文本而不是光标左侧的第一个字符?那么与在执行上述操作之前按退格键的效果相同吗?

4

1 回答 1

2

似乎没有简单的方法可以将击键发送到可编辑的 iframe,因此您可能需要找到某种解决方法。最简单的方法是从 iframe 获取内容,对其进行操作,然后将它们放回 iframe。

例如:选择 iframe 中的所有文本

var selection = element.execCommand("selectAll");

删除最后一个字符 - 切片选择

selection = selection.baseNode.data.slice(0, -1)

删除所有内容

element.execCommand("Delete")

附加切片选择+您的新文本

element.execCommand("insertHTML",false,selection);
element.execCommand("insertHTML",false,"some text");

参考:

  1. http://msdn.microsoft.com/en-us/library/ie/ms533049(v=vs.85).aspx
  2. https://developer.mozilla.org/en/Rich-Text_Editing_in_Mozilla

PS 我对可编辑的 iframe 或选择对象非常熟悉,所以如果你的文本中有任何特殊字符的 html,它可能比这复杂得多。此外,您可能需要针对不同的浏览器对其进行调整。

于 2012-01-21T05:39:24.900 回答