### [重温 Squire:高效的 HTML5 富文本编辑器](https://www.prosaas.cn/article/220) **Published:** 2023-09-16T06:57:02 **Author:** 5201314 **Excerpt:** 什么是 Squire? Squire 是一款极其轻量级的 HTML5 富文本编辑器,最适合您应用程序的丰富输入…  ## 什么是 Squire? Squire 是一款极其轻量级的 HTML5 富文本编辑器,最适合您应用程序的丰富输入表单和简单的文档创建。它提供跨浏览器支持,但刻意避免支持旧版浏览器的复杂性。它在 Opera 10、Firefox 3.5、Safari 4、Chrome 9 和 IE8 上运行效果最佳。 Squire 不适用于创建和编辑所见即所得的网站页面。然而,对于许多富文本输入和网络应用程序来说,Squire 可能正是您所需要的。它提供了不臃肿的力量。它还获得了麻省理工学院的许可,可以灵活重用。 在本教程中,我将向您展示如何下载 Squire 并使用它构建示例输入表单。如果您想了解 Squire 的实际应用,请访问演示。 ## 乡绅从哪里来? FastMail 团队构建了 Squire 来简化他们的网络邮件编辑器要求。 FastMail 是 Gmail 的优秀基于云的电子邮件替代方案 — 我是 FastMail 的日常用户。由于它的总部位于澳大利亚,并且根据与美国不同的法律运营,因此 FastMail 用户的隐私保护略有改善。您可以在这里阅读更多相关信息:FastMail 称其不受 NSA 监视。 正如 FastMail 团队在他们的博客中所写,他们之前使用过 CKeditor: > 虽然不是一个糟糕的选择,但像大多数其他编辑器一样,它是为创建网站而不是编写电子邮件而设计的。因此,默认情况下,简单地插入图像就会出现一个包含三个选项卡和比您想象的更多选项的对话框...它还附带了自己的 UI 工具包和框架,我们必须对其进行大量自定义才能适应我们正在构建的新用户界面的其余部分;维护起来很痛苦。 > 由于我们关注速度和性能,我们也关心代码大小。我们用于之前(经典)UI 的 CKEditor 版本仅包含我们需要的插件,下载大小为 159 KB(gzip 压缩后;未压缩为 441 KB)。这只是代码,不包括样式和图像。 他们决定从头开始,打造 Squire。压缩和 gzip 后的 JavaScript 大小仅为 11.5 KB(未压缩时为 34.7 KB),并且没有依赖项,Squire 非常轻量级。 结果令人印象深刻。加载整个撰写屏幕、基础库、邮件和联系人模型代码以及呈现整个屏幕的所有 UI 代码所需的组合代码重量现在仅为 149.4 KB(未压缩时为 459.7 KB),比单独的 CKEditor 还小。 Squire 没有依赖性。没有 XHR 包装器、小部件库或灯箱覆盖层。工具栏没有用户界面,这消除了加载两个 UI 工具包带来的臃肿。这只是一个简单的 `4750256ae76b6b9d804861d8f69e79d3` 组件,可以通过 JavaScript 进行操作。 ## Squire 的工作原理 Squire 使用选择和范围 API 来操作 DOM。这消除了常见的跨浏览器不兼容性。再次来自 FastMail 博客: > 制作富文本编辑器是出了名的困难,因为不同的浏览器在这方面极其不一致。这些 API 都是 Microsoft 在 IE 全盛时期引入的,然后被其他供应商以各种不兼容的方式复制......大多数富文本编辑器执行命令,然后尝试清理浏览器创建的混乱。有了 Squire,我们就巧妙地绕过了这个问题。 > Squire 的总体理念是允许浏览器做尽可能多的事情(不幸的是不是很多),但在任何偏离要求的地方进行控制,或者存在显着的跨浏览器差异。 > 安装 Squire > > 其次,将 `build/` 目录的内容复制到您的应用程序中。 p> > > 第三,编辑 `document.html` 中的 `c9ccee2e6ea535a969eb3f532ad9fe89` 块以添加您希望编辑器使用的默认样式(或链接到外部样式表)。 > > ## 使用 Squire > > 让我们看一下 Squire 附带的演示应用程序。使用 Squire 时,您可以使用 `99d78fe265c29dea40d4f5b20d97044c`,而不是 `4750256ae76b6b9d804861d8f69e79d3` 元素。 > > 在演示中: > > > > `Document.html` 是一个具有默认样式的空白画布,它会加载 Squire: > > > >
> > >> get selection | > get doc >
> > > 当您选择某些文本并单击它时,所选内容将在警报中弹出,如下所示。 > >  > > 让我们来看看更美观的演示及其工具栏: > >  > > 此页面的头块集成了 Bootstrap 的样式表和名为 `Squire-UI` 的样式表。它还为此 `Squire-UI` 提供 JavaScript。 > > > > > > >