zoukankan      html  css  js  c++  java
  • 富文本编辑

    目录

    引子

    再次碰到需要使用富文本编辑的场景,发现了之前没有想到的一些点,在此整理一下。

    参考点

    在使用富文本插件的时候,在比较选择时,个人发现以下几个参考点:

    • 文档说明,这个可以节约很多时间,无论是比较和使用时。
    • 国际化,有的真没有国际化,连文档也没有说明。
    • 实现列表、链接、标题等各种效果是否使用了原生的 HTML 标签,其样式跟自身系统样式重置是否有冲突,其它显示编辑后富文本的地方也要考虑。
    • 字体的支持,加载额外的字体文件可能加大包的体积。
    • 图片上传的处理,有的插件需要自己写。
    • 视频插入的处理,有的插件只是插入一个链接,不同的视频源可能效果会不一样。
    • 判空,富文本里面可能一开始有默认的标签,只是看不到,获取的时候也拿得到,但实际上是没有输入内容。
    • 初始化、内容改变、获取/失去焦点事件监听,嵌入其它框架时有用处。
    • 扩展,这个分为自定义和覆盖原有功能两种形式,看实际需求。

    关于字体方面,见 Font

    下面就是找到的一些免费开源的富文本插件比较。

    插件

    以下仅供参考。

    Quill

    文档上说,Quill 是一个为兼容性和可扩展性而构建的所见即所得的现代编辑器。

    截至 2019.12.12, 仍然处于有人维护状态,结合上面的考虑点,有下面的一些个人体会。

    好的方面:

    • 有独立的包,大部分功能都不需要额外安装其它依赖。
    • 实现的格式效果,有自身单独的处理,例如 ul 标签的样式。
    • 支持部分视频网站分享链接插入。
    • 扩展支持自定义和覆盖。
    • 展示风格简约。

    不好的方面:

    • 文档说明感觉不怎么好用。
    • 没有国际化。
    • 图片异步处理需要单独重写处理,没有提供相应的 API 。
    • 工具栏和操作没有对应的提示信息。

    Summernote

    文档上说,Summernote 是一个超级简单的所见即所得的编辑器。

    截至 2019.12.12, 仍然处于有人维护状态,结合上面的考虑点,有下面的一些个人体会。

    好的方面:

    • 文档比较完整好找。
    • 事件和方法丰富,包含图片上传异步处理 API。
    • 支持国际化。
    • 工具栏和操作都会有提示信息,而且图片、表格伴有浮动操作工具。
    • 支持部分视频网站分享链接插入。
    • 扩展支持自定义。
    • 展示风格简约。

    不好的方面:

    • 需要安装额外的依赖包 JQuery。
    • 依赖 Bootstrap 的样式和部分组件,但不是必需,也有不依赖的版本,如果觉得不好看,需要自行写额外样式调整。
    • 编辑时的效果使用的是 HTML 标签原生的效果,例如 H 系列、ul、ol、table 。展示的地方需要重置样式。

    UEditor

    文档上说,UEditor 是所见即所得富文本 web 编辑器,具有轻量,可定制,注重用户体验等特点。

    已无人维护了,在实际中使用过,主要功能还是没有问题的,结合上面的考虑点,有下面的一些个人体会。

    好的方面:

    • 文档详细,因为开发人员也都是国人。
    • 独立的包。
    • 支持国际化。
    • 实现的格式效果,部分有自身单独的重置处理。
    • 功能很强大且丰富,一般富文本有的都有。
    • 草稿本地存储。
    • 扩展支持自定义。

    不好的方面:

    • 使用时初看像早期编辑器,一些交互的弹窗也很原始。
    • 使用的功能越多,配置相对其它插件要复杂一些。

    Slate

    文档上说,Slate 是一个完全可定制的富文本编辑框架。

    截至 2019.12.12, 仍然处于有人维护状态,结合上面的考虑点,有下面的一些个人发现。

    好的方面:

    • 文档列出了内部实现的相关属性和方法,有中文版。
    • 独立的包。
    • 实现的格式效果,有自身单独的重置处理。
    • 支持部分视频网站分享链接插入。
    • 选择内容后支持浮动的操作工具。
    • 有对应定制的 react 版本。
    • 扩展支持自定义。

    不好的方面:

    • 无国际化。
    • 偏重定制化,想要添加比较多的功能,需要花时间找对应包,看对应包文档。
    • 工具栏的交互跟其它插件有些不一样,要先选择内容再选择格式才有效。
    • 提供的图片上传示例只支持图片源 URL 的方式。
    • react 使用起来,看文档比较复杂。

    参考资料

  • 相关阅读:
    java web中使用log4j
    Apache Log4j配置说明
    sql数据库为null时候ASP语句判断问题
    js实现两个文本框数值的加减乘除运算
    js实现文本框支持加减运算的方法
    php报错syntax error, unexpected T_GOTO, expecting T_STRING,报错文件与行数指向以下代码,是什么原因?
    安装DEDECMS出现Function ereg_replace()错误的解决方法
    按钮显示隐藏div、input等
    设计input搜索框提示文字点击消失的效果
    Xcode export/upload error: Your session has expired. Please log in-b
  • 原文地址:https://www.cnblogs.com/thyshare/p/12050743.html
Copyright © 2011-2022 走看看