javascript – 在一个可信的div中,可以使用浏览器的撤消撤消`range.insertNode`吗?

前端之家收集整理的这篇文章主要介绍了javascript – 在一个可信的div中,可以使用浏览器的撤消撤消`range.insertNode`吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在研究一个contenteditable div来制作一个简单的RichText-Editor.我的要求之一是能够在按钮事件上的光标位置插入html块.

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

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

我知道我可以使用许多可用的编辑器,这样做非常好,但如果我得到这个,我就不必这样做了.欢迎任何帮助甚至建议.

谢谢.

解决方法

2013年8月重写的答案

不幸的是,尽管事情正在改善.除了document.execCommand()触发的程序性DOM突变之外,它们不会进入浏览器的内置撤消堆栈.但是,最近有两个发展:

> IE 11有新的ms-beginUndoUnitms-endUndoUnit命令
>有一个spec正在为Web开发人员提供撤销堆栈,其中一部分已在WebKit和Firefox中实现(注意:it’s disabled by default in Firefox,显然也在WebKit中).

在情况改善之前,您可以使用document.execCommand(“InsertHTML”,false,“< b> Some html< / b>”);但IE不支持功能.

猜你在找的JavaScript相关文章