我认为像 Google 文档那样推出我自己的文本编辑器会很有趣,当然纯粹是出于好奇(与重新发明轮子无关)。我一直想知道 Docs 和 Zoho Writer 这样的应用程序如何获得高级布局,例如分隔不同页面上的文本,或者将标题与其内容保持在一起,您知道,编辑器喜欢的东西TinyMCE http://www.tinymce.com/ or nicedit http://nicedit.com/不会的。我知道使用 designMode 和 contenteditable,并且我听说人们使用 canvas,但是有更好的方法吗? MS 或 LibreOffice 等桌面办公套件如何管理这一点?特别是在编辑内容时将内容分割成离散的页面?
顺便说一句,有人知道新的 Google 文档是如何工作的吗?它似乎没有使用 contenteditable(Zoho 使用 designMode),也没有使用画布。根据我的发现,这只是一个非常深的层次结构<div>s.
你的“问题”有点宽泛,但我会尽力帮助你:
Google 文档正在使用隐藏的iframe (not display:none,只是用户实际上看不到它),其正文内容可编辑(.docs-texteventtarget-iframe);当您看到插入符号闪烁时,这意味着可编辑正文已获得焦点,并且您在那里编写的所有内容都会插入到 DOM 中(在清理特殊 HTML 字符之后)
正如我所说,Google Docs 使用 DOM 修改(不是 canvas 或 svg);甚至插入符号也有点div眨眼。