我认为将自己的文本编辑器滚动到谷歌文档会很有趣,纯粹是为了好奇(当然不需要重新发明轮子)。我一直想知道像Docs和Zoho Writer这样的应用程序如何能够获得高级布局,例如在不同页面上分隔文本,或者将标题与内容保持在一起,你知道,像TinyMCE或nicedit这样的编辑赢了做。我知道使用designMode和contenteditable,我听说人们使用canvas,但是有更好的方法吗?像MS或LibreOffice这样的桌面办公套件如何管理? 特别是在编辑内容时将内容拆分为离散页面?
另外,有人知道新版Google文档的工作原理吗?它似乎没有使用contenteditable(Zoho使用designMode),也没有使用canvas。根据我的发现,它只是<div>
s的非常深层次的结构。
答案 0 :(得分:2)
你的“问题”有点宽泛,但我会尽力帮助你:
Google文档使用隐藏的iframe
(不是display:none
,只是用户无法真正看到它),其中包含可编辑内容的正文( .docs-texteventtarget-iframe );当你看到插入符号闪烁时,意味着可编辑的主体被聚焦,你在那里写的所有东西都被插入到DOM中(在清理特殊的HTML字符之后)
div
闪烁。
TinyMCE使用类似的技术,但使用输入字段(而不是内容可编辑的主体)