为什么将可编辑的html移入iFrame?我分析了不同的编辑器(TinyMce,CKEditor等),并将所有可编辑内容移动到单独的iFrame中,它们将其放置在原始文本上。

这是什么技术原因?我尝试了contenteditable="true",它也是所有这些编辑器的基础,并且还没有找到这样做的理由。

最佳答案

我是CKEditor核心开发人员。时间不长-仅在半年内,但我了解了很多有关为什么使用iframed editable的知识:)

  • 样式-iframed编辑器的内容不会继承页面的样式。这非常重要,因为我们无法重置样式(如此!CSS确实很烂)。更重要的是-在iframe中,我们可以自由添加自己的样式,这也很有帮助。
  • 只有在iframed可编辑的情况下,我们才能处理整个页面的头部,元数据, body 样式,标题等。我们的某些用户需要此功能。
  • 浏览器的内容可编辑性有很多错误(且不完整)。例如。猜测将列表粘贴到Firefox上的<h1>元素的可编辑内容中时会发生什么(您可以在此编辑器-http://createjs.org/demo/hallo/中进行检查)?它将泄漏到可编辑区域之外,并成为不可编辑的元素。我们必须在编辑器中手动处理这些情况,这确实是艰苦的工作:)。
  • 我不确定这一点,但我相信designMode wich允许将整个文档切换到可编辑区域(最早是contenteditable)。因此,原因也可能是历史原因-很难从一种方法转换为另一种方法。
  • 我们使用iframed可编辑文件的原因可能更多。当我学习它们时,我将更新我的答案:)
  • 10-07 17:27