【问题标题】:JavaScript Implementation of DOM Level 2 (or better?)DOM Level 2 的 JavaScript 实现(或更好?)
【发布时间】: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


【解决方案1】:

jsdom 是这个问题的标准答案。 dom.js 是另一个,但我不知道有谁在使用它,所以我怀疑它是否经过了太多测试。

【讨论】:

  • 感谢您的指导。我担心常见浏览器中的这两种情况。它们都是为 node.js 设计的,我很难找到在那个环境之外讨论它们的成功。
猜你喜欢
  • 2023-03-11
  • 1970-01-01
  • 1970-01-01
  • 2012-05-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多