代码之家  ›  专栏  ›  技术社区  ›  Johan

在HTML中可编辑的dom,如google docs

  •  2
  • Johan  · 技术社区  · 15 年前

    我对谷歌文档的编辑工作有点好奇。他们是如何在DOM中实现编辑器的?它看起来不像具有文本区域的窗体,而是带有附加光标的普通文档正文。我想这是后面的一些javascript技术。

    有没有免费的库可以用来实现这种功能,或者我如何自己实现它?

    3 回复  |  直到 8 年前
        1
  •  2
  •   Tim Down    15 年前

    它使用内置于所有现代桌面浏览器中的编辑功能,通过设置 designMode 通过添加一个 contenteditable 值为“true”的属性(也通过设置 contentEditable 属性设置为字符串“true”)。

    在网页中编辑一段内容的一个非常常见的策略是包含一个iframe,该iframe的文档 设计模式 打开。

    再加上这个 document.execCommand ,在可编辑文档中,可用于应用各种格式。例如:

     document.execCommand("bold", false, null);
    

    …将切换所选文本是否为粗体。浏览器之间有一个共同的命令池,但在实现某些命令的具体方式上存在一些差异。可以找到更多信息 here at MSDN for IE here at MDC for Firefox . 似乎找不到WebKit的文档。

        2
  •  2
  •   Community CDub    8 年前

    自2010年年中以来,谷歌文档似乎完全不再依赖浏览器进行编辑。

    相反,他们使用JavaScript和DOM构建了自己的文本/HTML编辑器。

    They explain it in a lengthy blog posting 关于如何实现这些功能。

    在搜索了提供类似概念的第三方供应商之后,我发现到目前为止还没有人。如果iOS不支持 contentEditable 属性直到iOS 5(即使在那时, there are issues )

        3
  •  0
  •   2ndkauboy    15 年前

    对于Mee,它看起来像任何HTML编辑器。他们只是编写了自己的javascript HTML编辑器。即使是HTML编辑视图也没有任何魔力。

    一个好的自由的HTML编辑器是 TinyMCE 但是还有很多其他的,甚至一些非常强大的专有 CuteEditor 可用于php和asp.net。

    顺便说一句:文档的内容(在google docs中)放在iframe中,就像在cuteeditor中一样(也可能放在tinymce中)。