为什么可编辑的html会移动到iFrame中?我分析了不同的编辑器(TinyMce,CKEditor等),并将可编辑内容移动到一个单独的iFrame中,它们放在原始文本上。
这是什么技术原因。我试验过 contenteditable="true"
,这也是所有这些编辑的基础,并没有找到理由做到这一点。
为什么可编辑的html会移动到iFrame中?我分析了不同的编辑器(TinyMce,CKEditor等),并将可编辑内容移动到一个单独的iFrame中,它们放在原始文本上。
这是什么技术原因。我试验过 contenteditable="true"
,这也是所有这些编辑的基础,并没有找到理由做到这一点。
我是CKEditor核心开发人员。不是很长一段时间 - 只是在今年下半年,但我已经学到很多关于为什么我们使用iframed可编辑:)
样式 - iframed编辑器的内容不会继承页面的样式。这非常重要,因为我们无法重置样式(原文如此!CSS真的很糟糕)。更重要的是 - 在iframe中我们可以自由添加我们自己的风格,这也是有帮助的。
只有iframed可编辑,我们可以在整个页面上使用head,metas,body styles,title等。我们的一些用户需要这个。
浏览器有很多错误(和不完整)的满足感。例如。猜猜将列表粘贴到可编辑的内容时会发生什么 <h1>
Firefox上的元素(你可以在这个编辑器中检查 - http://createjs.org/demo/hallo/)?它将从可编辑区域泄漏出来,成为不可编辑的元素。我们必须在编辑器中手动处理这些情况,这真的很难:)。
我不确定这一点,但我相信 designMode
它允许将整个文档切换到可编辑区域 contenteditable
来晚了。所以原因可能也是历史性的 - 很难从一种方法转向另一种方法。
可能我们使用iframed可编辑的原因还有很多。我将在学习它们时更新我的答案:)
嗨Zappino!
像TinyMCE这样的编辑器使用IFrame是非常本质的 在框架中,您可以修改HTML文档的任何部分以适合您的 需要不破坏主页文档中的任何内容。 特别是如果你想编辑一个完整的HTML文档,包括 如果没有,你之间的部分将无法实现 iframe中。
如果您将TinyMCE的文件存储在a上,则会发生跨域抓取 与嵌入编辑器的页面不同(子)域。 向我们展示您正在使用的安装测试场景 麻烦,有人可能会帮助你!
来自德国的问候(回到德国)
菲利克斯里斯特勒。