【发布时间】:2011-05-24 12:17:26
【问题描述】:
我需要为我正在处理的项目构建一个所见即所得的编辑器,并且需要一些指导。我的一些主要困惑点如下:
iframe docs vs. contenteditable divs:我应该使用哪一个,为什么?我讨厌 iframe,使用 iframe 有明显优势吗?
跨浏览器样式:execCommand 似乎在不同的浏览器中应用不同的样式。有什么技巧可以让这个跨浏览器兼容吗?我应该根本不使用 execCommand 而是应用我自己的样式吗?
将项目添加到撤消链:如何运行我自己的脚本,例如插入图像,并允许 cntrl+z(撤消)删除它?是否有可以将项目推送到 contenteditable 的撤消/重做项目数组?
保持文本选择:如何在进行诸如选择字体样式、焦点离开和删除我的选择等操作时保持文本选择。 Rangy? Google closure?还有其他值得一看的范围/选择库吗?
任何关于这些项目的提示或与构建富文本编辑器相关的任何其他内容将不胜感激!
【问题讨论】:
-
我假设您有充分的理由不能简单地使用 TinyMCE 之类的东西?
-
没有什么很好的理由,除了 a) 我的老板想让我从头开始,b) 对于我的用例,编辑器本身还有很多其他的东西,所以它会进行重大修改/addition to tinymce 如果我使用它。我最终可能会查看他们的代码,以获得基本编辑的一些见解。
-
你的老板疯了 :) 我不知道你需要什么确切的功能,但你会遭受可怕的痛苦(或者享受构建它的乐趣,并在维护它的同时遭受痛苦)。祝你好运。不过,请看一下 TinyMCE、HtmlArea 和 Google Closure 的编辑器组件。我建议您先尝试约束您的老板,同时向他清楚地解释他将如何让自己的生活(和您的)成为噩梦,然后如果他仍然想要它,然后痛苦地准确地定义需求和测试规范。有他坐在你身边,所以他才意识到自己的疯狂程度。
-
我自己实际上一直在尝试它——尽管我并没有以任何方式瞄准 IE。即使 Chrome 和 Firefox 也不会免费为您提供东西,我在 遇到了很多问题——我认为与其使用 execcommand 不如处理 dom自己修改——目前 execcommand 的实现存在太多问题。
标签: javascript html iframe wysiwyg contenteditable