2011-12-17 67 views
5

我正在编写一个contenteditable div来制作一个简单的RichText-Editor。我的要求之一是能够在按钮事件的光标位置插入html块。可以使用浏览器的撤销,在contenteditable div中取消`range.insertNode`?

我能够通过使用基于浏览器的range,selection,range.insertNode(nodeHTML)range.pasteHTML(nodeHTML)得到该部分正常工作。但我不能得到两件事,理想情况下我想要

  1. 要能够使用浏览器的撤销撤消插入的节点。不知何故,浏览器会忽略上述操作。
  2. 将光标移动到插入节点的末尾。所以,用户可以开始写

我知道我可以使用许多编辑器中的东西,这很好,但如果我得到这个,我不会。任何帮助,甚至建议都是受欢迎的。

谢谢。

+0

这可能对你有帮助:http://code.google.com/p/rangy/ - 另外,看看演示。 – techfoobar 2011-12-17 07:21:24

+0

不幸的是Rangy没有撤消功能。 – 2011-12-17 10:52:56

回答

8

回答改写2013年8月

不幸的是没有,但情况正在好转。除document.execCommand()触发的程序性DOM突变外,其他程序化DOM突变不会在浏览器的内置撤销堆栈上进行。然而,已经有两队近况:

直到情况改善,您可以使用document.execCommand("InsertHTML", false, "<b>Some html</b>");,但IE不支持此功能。

相关问题