为什么可编辑的 html 被移到 iFrame 中?我分析了不同的编辑器(TinyMce、CKEditor 等),并将所有可编辑内容移动到一个单独的 iFrame 中,并将其覆盖在原始文本上。
这是什么技术原因。我尝试过contenteditable="true"
,这也是所有这些编辑器的基础,但尚未找到这样做的理由。
我是 CKEditor 核心开发人员。时间不长——只是今年下半年,但我学到了很多关于为什么我们使用 iframed editable 的知识:)
样式 - iframed 编辑器的内容不继承页面的样式。这非常重要,因为我们无法重置样式(原文如此!CSS 真的很糟糕)。更重要的是 - 在 iframe 中我们可以自由添加自己的样式,这也很有帮助。
只有在可编辑的 iframe 中,我们才能在整个页面上使用 head、metas、body 样式、标题等。我们的一些用户需要这个。
浏览器的 contenteditable 实现非常有缺陷(且不完整)。例如。猜猜当您将列表粘贴到可编辑列表中时会发生什么<h1>
Firefox 上的元素(您可以在此编辑器中检查 -http://createjs.org/demo/hallo/)?它将泄漏出可编辑区域并成为不可编辑元素。我们必须在编辑器中手动处理这些情况,这确实是一项艰苦的工作:)。
我对此不确定,但我相信designMode
允许将整个文档切换到可编辑区域是第一个和contenteditable
后来来了。所以原因也可能是历史性的——很难从一种方法转换到另一种方法。
可能我们使用 iframe 可编辑的原因还有更多。当我学习它们时,我会更新我的答案:)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)