Javascript 文字处理器/编辑器(或 Google Docs 架构)[关闭]

2024-03-09

我认为像 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眨眼。

TinyMCE 使用类似的技术,但具有输入字段(而不是可编辑内容的正文)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Javascript 文字处理器/编辑器(或 Google Docs 架构)[关闭] 的相关文章

随机推荐

  • 无法使用conda和python 3.8安装tensorflow

    最近 我升级到了 Anaconda3 2020 07 它使用 python 3 8 在以前版本的anaconda中 tensorflow安装成功 该版本未能成功安装Tensorflow 我运行了下面的命令 conda install ten
  • 如何将 Web 应用程序转换为桌面可执行文件?

    我使用 AngularJS jQuery Bootstrap 和 AJAX REST API 构建了 HTML 应用程序 是否可以为 Windows 操作系统创建可执行文件 安装程序 如果没有任何第三方软件 它应该看起来像本机应用程序 但只
  • WCF 与 Flash 教程

    我是 WCF 的初学者 我选择 WCF 而不是 Web 服务 因为我读过的所有文章和博客似乎都指出 ASMX 已经是旧闻了 我读过一些有关旧 Web 服务和 WCF 之间差异的内容 并且了解了总体思路 我也采取了MSDN WCF 教程 ht
  • Node.js / Express.js - 如何覆盖/拦截 res.render 函数?

    我正在使用 Connect Express js 构建 Node js 应用程序 并且我想拦截 res render view option 函数以运行一些代码 然后再将其转发到原始渲染函数 app get someUrl function
  • 如何更改所用纱线的版本?

    我使用Homebrew安装yarn 跑步yarn v显示我目前使用0 23 2 I ran brew upgrade yarn获取最新版本 即0 24 6 Homebrew成功升级后yarn I run yarn v又来了 不过版本还是0
  • MvvmCross 自定义事件绑定事件参数

    我使用 MvvmCross 在 EditText 上为 FocusChange 事件创建了自定义绑定 我可以绑定事件并触发 但我不知道如何传递事件参数 我的自定义绑定是这样的 using Android Views using Androi
  • 使用 python 在 CSV 文件中搜索字符串并写入结果

    usr bin python import csv import re string 1 OneTouch AT string 2 LinkRunner AT string 3 AirCheck searched OneTouch AT L
  • R 中的左移列

    我有一个这样的数据集 temp lt structure list col 1 c P9603 11040 80053 col 2 c 84484 80061 80061 A0428 85025 col 3 c V2632 82310 86
  • 谷歌电子表格公式中的多个嵌套 if 块

    我试图编写一个嵌套的 if 语句 如下伪代码 IF h4 1 CORRECT IF h4 2 CORRECT IF h4 3 CORRECT IF h4 4 CORRECT 但是 如果我写出代码并每次添加 if 语句 我会收到以下错误 IE
  • 使用 PHP 将时间添加 30 秒

    我怎样才能给这个时间加上30秒呢 time date m d Y h i s a time 我不知道该怎么做 因为它显示了很多不同的时间单位 而我只想添加 30 秒 time date m d Y h i s a time 30
  • 输入大数以避免 NumberFormatException

    我必须控制从1到9999999999的输入 代表学校的注册号 原始类型 long 只能容纳大约 2 000 000 000 我如何存储这个大小的数字 根据this http docs oracle com javase tutorial j
  • www.sandbox.itunes.apple.com 已关闭

    在此先感谢您的帮助 具体问题 由于在沙盒环境中测试应用内购买时出现错误 1001 无法连接到 iTunes 商店 知道是否重要吗 www sandbox itunes apple com下降了吗 如果没有 我怎么知道苹果的沙盒是否已关闭 背
  • 如何创建一个所有字段都是公共的公共结构,而无需为每个字段重复“pub”?

    如何在 Rust 中定义一个公共结构 其中所有字段都是公共的 而不必重复pub每个字段前面的修饰符 A pub struct宏将是理想的 pub struct Foo a i32 b f64 这相当于 pub struct Foo pub
  • 如何创建动画切换按钮?

    是的 我可以创建带有 2 张图片的 ToggleButton 开 关 但我想创建带有 3 5 张图片的 ToggleButton 例如 什么时候关闭 我单击 关闭图片 中图 图片上 它什么时候开启 我点击 图片上 中图 关闭图片 所以它就像
  • 带有 postgres 的游标,数据存储在哪里以及对数据库的调用次数

    您好 我正在使用 psycopg2 进行 postgres 访问 我试图了解 光标 存储返回的行的位置 是将其作为临时表存储在数据库中还是存储在客户端 游标 当您指定获取多行时 是否一次命中数据库一个查询 或者它是否命中数据库一次 获取第一
  • android - 无需root即可将字体安装到android平台

    我开发了一个新的应用程序 它是一种古老的埃及语言 科普特语 我需要在 Android 平台上安装特定的字体 使这种语言可读 我搜索是否找到应用程序执行相同的功能iFont 另外 当我访问字体文件夹时 我发现它允许安装字体 在线获取字体 那么
  • Javascript 数组分页

    我正在尝试编写一个 Javascript 函数 该函数需要array page size and page number作为参数并返回一个模仿分页结果的数组 paginate function array page size page nu
  • 我可以用64位jre运行使用32位jdk开发的java程序吗?应用程序使用32位非java系统库

    我正在 64 位 Windows 7 安装上使用 64 位 eclipse 开发一个 java 应用程序 我被迫使用 32 位 JDK 1 7 0 因为应用程序使用Jpcap http netresearch ics uci edu kfu
  • iPhone X如何处理View Controller inputAccessoryView?

    我有一个消息应用程序 它具有典型的 UI 设计 即全屏表格视图底部的文本字段 我将该文本字段设置为视图控制器的inputAccessoryView并打电话ViewController becomeFirstResponder 以使该字段显示
  • Javascript 文字处理器/编辑器(或 Google Docs 架构)[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我认为像 Google 文档那样推出