微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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不支持功能.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐