HTML WYSIWYG edtor:为什么可编辑内容在iFrame中移动

Ste*_*fan 11 html wysiwyg tinymce editor ckeditor

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

这是什么技术原因.我试验过contenteditable="true",这也是所有这些编辑的基础,并没有找到理由做到这一点.

Rei*_*mar 11

我是CKEditor核心开发人员.不是很长一段时间 - 只是为了今年下半年,但我已经了解了很多关于为什么我们使用iframed可编辑:)

  1. 样式 - iframed编辑器的内容不会继承页面的样式.这非常重要,因为我们无法重置样式(原文如此!CSS真的很糟糕).更重要的是 - 在iframe中我们可以自由添加我们自己的风格,这也是有帮助的.

  2. 只有iframed可编辑我们可以在整个页面上工作,包括head,metas,body styles,title等.我们的一些用户需要这个.

  3. 浏览器有很多错误(和不完整)的满足感.例如,猜测将列表粘贴到可编辑的内容时会发生什么,这是<h1>Firefox上的一个元素(您可以在此编辑器中检查 - http://createjs.org/demo/hallo/)?它将从可编辑区域泄漏出来,成为不可编辑的元素.我们必须在编辑器中手动处理这些情况,这真的很难:).

  4. 我不确定这一点,但我相信,它designMode可以将整个文档切换到可编辑区域,这是第一次contenteditable出现的.所以原因可能也是历史性的 - 很难从一种方法转向另一种方法.

  5. 可能我们使用iframed可编辑的原因还有很多.我将在学习它们时更新我的​​答案:)


Ste*_*fan 5

来自tinymce froum

嗨Zappino!

像TinyMCE这样的编辑器使用IFrame是非常本质的,因为在一个框架中,您可以修改HTML文档的任何部分以满足您的需要,而不会破坏主页文档中的任何内容.特别是如果您想要编辑包含两者之间部分的完整HTML文档,如果没有IFrame,您将无法执行此操作.

如果将TinyMCE的文件存储在与嵌入编辑器的页面不同的(子)域中,则会发生跨域抓取.向我们展示您遇到问题的安装测试场景,有人可能会帮助您!

来自德国的问候(回到德国)

菲利克斯里斯特勒.