【发布时间】:2012-09-08 19:30:12
【问题描述】:
由于我收到了here 的cmets,我正在寻找可以在所有常见浏览器中运行的DOM 的纯javascript 实现。请注意,我不希望与 DOM 的浏览器实现进行交互(甚至不通过 jQuery)。我正在寻找一个完整的替代品。
编辑:由于偶尔会遇到对 SO 的批评,因此我将尝试解释为什么我需要这样做。我正在编写一个富文本编辑器,它需要一些非常具体的功能,并且浏览器之间的实现差异导致我无法依赖它们来保持一致性。请参阅另一个问题的答案(与我的需求有关)Definition of ExecCommand function for bold?,详细说明为什么这是必要的。
【问题讨论】:
-
@pst 我已经编辑了我的问题,以便我可以认真考虑,而不是仅仅投反对票。如果你还是觉得没必要,那么我会将你的智慧传授给 CKEditor 的一位创作者。
-
我没有投反对票,但它总是有助于解释一个实际原因 :) 考虑到编辑严重依赖用户交互,我没有看到仅仅“DOM 2 替换”是如何工作的 .. 就像链接的答案中所讨论的那样,这都是跨浏览器的 一堆黑客攻击。
-
这是一个很好的问题!我不明白为什么人们投票反对。 +1
-
@pst 按键被捕获,以便我可以操作自己的 DOM。复制、粘贴、撤消和重做将使用 DOM 突变观察者(启用 contentEditable),并将这些差异更改应用到我自己的 DOM。对我的 DOM 所做的更改会触发对浏览器 DOM 的更新。这应该使我能够精确地控制编辑时发生的事情,以及向/从 webapp 的主机发送/接收差异更改。 CKEditor 的文档讨论了类似的方法 - 支持 HTML/DOM 实现控制浏览器。
标签: javascript dom cross-browser