免费JS富文本编辑器 总有一款会适合你

2023-11-11

什么是富文本编辑器?

概述: javascript Text Editor

​ 我们平常在页面上写文章 或者 后台发布文章内容、或内容描述等、一直都是用的是富文本编辑器,包括很多论坛发帖的文字窗口也是典型的富文本编辑器, 它跟office中的word界面非常类似!

富文本编辑器的使用是与word非常类似的,所见即所得的排版方式,操作也与word类似,点击鼠标使用相应功能就行,对用户而言使用上相对比较简单,也比较容易进入状态!

如图

在这里插入图片描述

总的来说富文本编辑器就是一种基于JS并且可内嵌于web浏览器中所见即所得的文本编辑器!

富文本编辑器不同于普通的文本编辑器,开发者可到网上下载免费的富文本编辑器内嵌于网站应用程序里面, 那么作为一个开发者,熟悉几款富文本编辑器是很有必要的,说不一定某个项目就要集成进去,到时候现就不会去花太多时间研究它!


介绍几款主流常用的JS富文本编辑器

下面列举几款常用的富文本编辑器,供大家参考!

1.TinyMCE

概述

TinyMCE是一款易用、且功能强大的所见即所得的富文本编辑器。同类程序有:UEditor、Kindeditor、Simditor、CKEditor、wangEditor、Suneditor、froala等等, 并且界面相当清新,界面模拟本地软件的风格,顶部有菜单栏。支持图片在线处理,插件多,功能非常强大,易于集成,并且拥有可定制的主题。

支持目前流行的各种浏览器,它可以达到微软Word类似的编辑体验。

而且这么好的东西还是开源免费的,而且一直有人维护,这款编辑器使用的人非常多 , TinyMCE自带的大部分插件均提供社区开源版,可免费使用且可商用!

下载

下载地址: https://www.tiny.cloud/

使用参考: http://tinymce.ax-z.cn/

在这里插入图片描述

根据需要下载社区版或者开发版

在这里插入图片描述

小提示

开发版包含未被压缩过的源码,方便开发者学习分析, 也就是说开发版包含TinyMCE社区版,开发工具和完整的源代码!

快速使用

步骤1:引入TinyMCEJS脚本

<head>中插入如下代码,注意自己的项目路径, 将tinymce.min.js源文件引入至项目中

<script src="TinyMCE/js/tinymce/tinymce.min.js"></script>

步骤2: 初始化TinyMCE, 将TinyMCE初始化为页面的一部分

当引用了TinyMCE.js后就可以使用tinymce.init()方法来进行初始化了,并且tinymce.init()方法内部接收一个初始化对象, 内部包含各种参数,必须的参数就是selector意思是允许通过css选择器指定TinyMCE要绑定的html内容容器,传统模式需指定textarea,内联模式可指定div或其它html块元素

举个栗子

//js
<script>
    tinymce.init({
        selector: '#test',
        skin: 'oxide-dark'
    });
</script>
//html
<h1>Dome1</h1>
<div id="test">测试数据!</div>

效果如下

在这里插入图片描述

注意:

当然这里建议新手还是使用textarea元素, TinyMCE会将内容塞进textarea元素,可以通过正常的post方法获取到编辑器中的内容, 如果你使用第三方框架或采用其他元素配合ajax提交则可能不会主动触发内容同步,需要自己执行同步 或者 自己执行dom操作来获取内容!


2.CKEditor

概述

Ckeditor也是一款非常经典的富文本编辑器,官方下载量过千万,它是在非常著名的FCkEditor基础上开发的新版本。Ckeditor有高性能的实时预览,它特有行内编辑功能,使得编辑内容更加直观,仿佛是在编辑网页一样,有很强的可扩展性,被各大网站广泛运用。

官方地址: https://ckeditor.com/

使用参考: https://ckeditor.com/docs/index.html

下载

在这里插入图片描述

点击下载按钮

在这里插入图片描述

根据需要下载

在这里插入图片描述

快速使用

步骤1:引入CkeditorJS脚本

<head>中插入如下代码,注意自己的项目路径, 将ckeditor.js源文件引入至项目中

<script src="ckeditor/ckeditor.js"></script>

步骤2: 初始化Ckeditor

CKEditor就像一个在你网页中的文本区域一样工作,它提供了一个简单易写的用户界面、版式和丰富的文字输入区域。但用文本区域要实现同样的效果,并不容易。实际上CKEditor就是使用一个文本区域来传递它的数据到服务器上,所以,你必需在页面上创建一个文本容器,这里建议使用<textarea></textarea>

引用ckeditor.js后就可以使用ClassicEditor.create()来进行创建编辑器,ClassicEditor.create()内部参数为指定的Ckeditor要绑定的文本容器。

举个栗子

//js
<script>
    window.onload = function(){
        ClassicEditor.create(document.querySelector("#editor"))
    }
</script>
//html
<h1>demo2</h1>
<textarea  id="editor"></textarea>

效果如下

在这里插入图片描述


3.wangEditor

概述

wangEditor 是一款使用 Typescript 开发的无框架依赖Web 富文本编辑器, 轻量、简洁、易用、开源免费。

它兼容常见的 PC 浏览器:Chrome,Firefox,Safar,Edge,QQ 浏览器,IE11。但是不支持移动端。

下载地址:https://www.wangeditor.com/

使用地址:https://www.wangeditor.com/doc/

下载

在这里插入图片描述

进入到以下页面

在这里插入图片描述

我们只需要将wangEditor.js或者wangEditor.min.js这两个文件拿出来就行了。

快速使用

步骤1:引入wangEditorJS脚本

<head>中插入如下代码,注意自己的项目路径, 将wangEditor.js或者wangEditor.min.js源文件引入至项目中

<script src="ckeditor/wangEditor.min.js"></script>

步骤2: 初始化wangEditor

你需要在页面上创建一个文本容器,然后利用以下代码就可以实现这个编辑器了。

举个栗子

//js
<script>
    window.onload=function(){
        let E = window.wangEditor;
        let editor = new E("#editorBox");
        editor.create();
    }
</script>
//html
<h1>demo3</h1>
<div id="editorBox"></div>

效果如下

在这里插入图片描述


在这里插入图片描述

4.Kindeditor

概述

KindEditor是一套使用JavaScript编写的开源的HTML可视化编辑器,让用户在网站上获得所见即所得编辑效果,兼容IE、Firefox、Chrome、Safari、Opera等主流浏览器。KindEditor非常适合在CMS、商城、论坛、博客、电子邮件等互联网应用上使用。

下载地址:http://kindeditor.net/down.php

使用地址:http://kindeditor.net/docs/index.html

下载

在这里插入图片描述

快速使用

步骤1:引入KindEditorJS脚本

<head>中插入如下代码,注意自己的项目路径, 将kindeditor-all-min.js或者kindeditor-all.js源文件引入至项目中,并且还要将文件夹langzh-CN.js引入到项目中,如下:

<script  src="kindEditor/kindeditor-all-min.js"></script>
<script  src="kindEditor/lang/zh-CN.js"></script>

步骤2: 初始化KindEditor

在需要显示编辑器的位置添加textarea输入框。注意必须给textarea设置一个id或者类class选择器,建议使用id选择器,因为id选择器是页面独一无二的,而类class选择器可以存在多个,容易产生混乱。

举个栗子

//js
<script>
    KindEditor.ready(function(K) {
        window.editor = K.create('#editorBox');
    });
</script>
//html
<h1>demo4</h1>
<textarea  id="editorBox" name="content">测试内容</textarea>

效果如下

在这里插入图片描述


5.Simditor

概述

SimditorTower平台使用的富文本编辑器,是一款基于jQuery和module.js,轻量化开源的编辑器,界面简约,功能实用,插件不是很多,功能要求不高的可以使用。支持的浏览器:IE10+、Chrome、Firefox、Safari

下载地址:https://github.com/mycolorway/simditor/releases

使用地址:https://simditor.tower.im/docs/doc-usage.html

下载

在这里插入图片描述

快速使用

步骤1:引入Simditor相关的JS与CSS文件

<head>中插入如下代码,注意自己的项目路径, 将以下文件引入到项目中,如下:

<link rel="stylesheet" href="simditor/site/assets/styles/simditor.css"/>
<script  src="simditor/jQuery.min.js"></script>
<script  src="simditor/site/assets/scripts/module.js"></script>
<script  src="simditor/site/assets/scripts/hotkeys.js"></script>
<script  src="simditor/site/assets/scripts/simditor.js"></script>

以上文件除了jQuery.min.js需要单独下载外,simditor.cssmodule.jshotkeys.jssimditor.js 到你下载的Simditor中的site/assets文件夹中去找。还要注意js文件的引入顺序,Simditor是基于jQuery和module.js,所以要引入到simditor.js之前。

步骤2: 初始化Simditor

要使用 Simditor,首先你需要一个textarea这样的元素,并且给textarea设置一个id选择器。

举个栗子

//js
<script>
    $(function(){
        Simditor.locale = 'zh-CN';//设置中文
        var editor = new Simditor({
            textarea: $('#editorBox'),  //textarea的id
        })

        })
</script>
//html
<h1>demo5</h1>
<textarea  id="editorBox" name="content">测试内容</textarea>

效果如下

在这里插入图片描述


6.Summernote

概述

Summernote是一款轻量级的富文本编辑器,比较容易上手,使用体验流畅,支持各种主流浏览器。它是基于jquery和bootstrap,使用前先引入这两项。

下载地址:https://summernote.org/

使用地址:https://summernote.org/getting-started/#get-summernote

下载

在这里插入图片描述

快速使用

步骤1:引入Summernote相关的JS与CSS文件

<head>中插入如下代码,注意自己的项目路径, 将以下文件引入到项目中,如下:

<link rel="stylesheet" href="bootstrap/css/bootstrap.min.css"/>
<script  src="js/jQuery.min.js"></script>
<script  src="bootstrap/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="summernote/summernote.min.css"/>
<script src="summernote/summernote.min.js"></script>

步骤2: 初始化Summernote

在你希望页面中呈现 Summernote 编辑器的位置设置一个文本容器,并且给文本元素设置一个id选择器。

举个栗子

//js
<script>
    $(document).ready(function() {
        $('#summernote').summernote();
    });
</script>
//html
<h1>demo6</h1>
<div id="summernote"><p>Hello Summernote</p></div>

效果如下

在这里插入图片描述


7.Quill

概述

Quill是轻型的编辑器,样式一般(黑白风),功能中等,它的代码高亮功能比较强,同样支持行内编辑模式,工具条可自定义。

下载地址:https://quilljs.com/docs/download/

使用地址:https://quilljs.com/docs/quickstart/

注意:Quill的使用文档是英文的,英语不好的可以借助翻译软件!!!!

下载

在这里插入图片描述

进入一下页面

在这里插入图片描述

快速使用

步骤1:引入Quill相关的JS与CSS文件

<head>中插入如下代码,注意自己的项目路径, 将以下文件引入到项目中,如下:

<link rel="stylesheet" href="quill/quill.bubble.css"/>
<link rel="stylesheet" href="quill/quill.snow.css"/>
<link rel="stylesheet" href="quill/quill.core.css"/>
<script src="quill/quill.core.js"></script>
<script src="quill/quill.min.js"></script>

步骤2: 初始化Quill

在你希望页面中呈现 Quill 编辑器的位置设置一个文本容器,并且给文本元素设置一个id选择器。

举个栗子

//js
<script>
    var quill = new Quill('#quill', {
        theme: 'snow',
        modules: {
            toolbar: [
                [{header: [1, 2, 3, false]}],
                ['bold', 'italic', 'underline'],
                [{'list': 'ordered'}, {'list': 'bullet'}],
                [{'align': []}],
                [{'font': []}],
                [{'color': []}, {'background': []}],
                ['image', 'video']
            ]
        }
    });
</script>
//html
<h1>demo7</h1>
<div id="quill"><p>Hello Quill</p></div>

效果如下

在这里插入图片描述


end

以上的JS编辑器的详细使用请参照官方以及相关文档,根据你的项目需求,挑选出适合的富文本编辑器,希望对你有所帮助!!

谢谢您的阅读!! !

在这里插入图片描述

在这里插入图片描述

"点赞" "评论" "收藏"

大家的支持就是我坚持下去的动力!

如果以上内容有任何错误或者不准确的地方,欢迎在下面
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

免费JS富文本编辑器 总有一款会适合你 的相关文章

  • 由于 apollo-client 未定义,无法解构 GraphQL 查询?

    我正在寻找调试与错误消息相关的问题 未捕获的类型错误 无法解构 0 apollo client WEBPACK IMPORTED MODULE 4 useQuery 因为它未定义 Context 我正在为我的 React js 项目设置后端
  • 使用 jquery 远程图像属性

    目前我正在尝试获取远程图像宽度 高度 我正在开发一个链接共享模块 就像当你在 Facebook 上粘贴链接时 你可以看到标题 描述和图像 所以我尝试使用 php getimagesize 来获取图像宽度 高度 但速度非常慢 所以我正在考虑使
  • 将鼠标悬停时的鼠标光标更改为锚状样式

    如果我将鼠标悬停在div鼠标光标将更改为 HTML 锚点中的光标 我怎样才能做到这一点 假设你的div has an id myDiv 将以下内容添加到您的 CSS 中 这cursor pointer指定光标应与用于锚点 超链接 的手形图标
  • 渲染货币和符号并与来自不同单元格的数据相结合

    我正在使用最新的 jQuery DataTables v1 10 7 我正在尝试将数字解析为以下格式 239 90 USD 我可以使用此命令使货币正常工作 columns data Price render fn dataTable ren
  • 为什么 iife 在一个简单的例子中不起作用?

    我不明白为什么函数表达式调用不起作用并抛出错误 你能给我解释一下吗 var a function x alert x function a 1 谢谢大家 任务比我想象的要容易得多 这是因为 JS 将 IIFE 解析为函数的参数调用 这样做时
  • 在新的 Google 协作平台 <嵌入 HTML> 中使用 localStorage 和 IndexedDB 不起作用

    我正在尝试将新的 Google 协作平台用于我开发的网页 但是 我在存储本地数据时遇到了问题 本地文件在 Windows 和 Apple safari chrome 中运行良好 从 Google 协作平台尝试一下 没有什么乐趣 此外 在 s
  • 如何更改 Google Maps v3 API for Directions 中的开始和结束标记图像

    我使用 DirectionsRender 绘制了一条路线 但我不知道如何用我自己的标记替换通用的 Google 标记 我知道并在正常的谷歌地图情况下使用它 但发现很难用开始和结束的方向标记来做到这一点 如果这是一个愚蠢的问题 感谢您的任何建
  • 摩卡 - Chai Karma“套件未定义”

    我对 jscript tdd 很陌生 遇到了问题 希望有人能告诉我我在做什么 在浏览器中运行测试 通过 HTML 文件 一切正常 通过节点和业力运行它们我得到以下异常 我想在 node js 主机的 karma 中使用 Mocha 和 Ch
  • Snap.svg - 停止在可悬停元素的子元素上重新触发悬停事件

    对于一个项目 我使用的 SVG 形状由背景多边形和背景多边形上方的一些文本 我已将其转换为路径 组成 我正在使用 Snap svg 为我的形状设置动画 当我将鼠标悬停在多边形上时 形状应该缩放到特定尺寸 包括其中的所有内容 鼠标移开时 形状
  • 隐藏 Div 的父级

    我只是想隐藏父divcomments section div class content content green div div div 我试过这个 document getElementById comments section pa
  • Draggable JS Bootstrap 模式 - 性能问题

    对于工作中的项目 我们在 JavaScript 中使用 Bootstrap Modal 窗口 我们想让一些窗口可移动 但我们遇到了 JQuery 的性能问题 myModal draggable handle modal header Exa
  • 防止 iOS 键盘在 cordova 3.5 中滚动页面

    我正在使用 Cordova 3 5 和 jQuery mobile 构建 iOS 应用程序 我在大部分应用程序中禁用了滚动功能 但是 当我选择输入字段时 iOS 键盘会打开并向上滚动页面 我不想要这个功能 由于输入足够高 键盘不会覆盖它 我
  • 如何将函数附加到弹出窗口关闭事件(Twitter Bootstrap)

    我做了一些搜索 但我只能认为我可以将事件附加到导致其关闭的按钮 https stackoverflow com questions 13205103 attach event handler to button in twitter boo
  • 将 GMT 时间转换为当地时间

    我以这种格式从我的服务器获取 GMT 时间 Fri 18 Oct 2013 11 38 23 GMT 我的要求是使用Javascript将此时间转换为本地时间 例如 如果用户来自印度 首先我需要采用时区 5 30并将其添加到我的服务器时间并
  • 调整图像大小并将画布旋转 90 度

    这里有很多关于在 js 上使用画布旋转图像的主题 我阅读了其中的大部分内容 但无法找到解决我的问题的方法 我正在接收任何分辨率的图像 来自上传组件 我将其大小调整为 1024x768 如下所示 var canvas document cre
  • 为什么我们在打字稿中使用 HTMLInputElement ?

    我们为什么使用 document getElementById ipv as HTMLInputElement value 代替 document getElementById ipv value 功能getElementById返回具有类
  • Firebase 函数 onWrite 未被调用

    我正在尝试使用 Firebase 函数实现一个触发器 该触发器会复制数据库中的一些数据 我想观看所有添加的内容votes user vote 结构为 我尝试的代码是 const functions require firebase func
  • Vue 和 Vuex:处理依赖的计算属性

    我的应用程序是一个使用 Vuex 在 Vue 中构建的精简电子表格 关键组件是TableCollection Table and Row The TableCollection有一个包含多个的数组Table对象 每个Table有一个包含多个
  • 在 CKEditor 中设置字体大小和字体系列

    我正在使用 ckeditor 我想问一下这个插件如何设置font family和font size 我尝试过使用 CKEDITOR config font defaultLabel Arial CKEDITOR config fontSiz
  • Vue.js[vuex] 如何从突变中调度?

    我有一个要应用于 json 对象的过滤器列表 我的突变看起来像这样 const mutations setStars state payload state stars payload this dispatch filter setRev

随机推荐

  • 城市内涝地埋式积水监测系统解决方案

    一 方案背景 近 20 年来 我国城市化进程加快 城市地区由于人口密集 物资财产密度不断加大等特点 高强度暴雨积水形成的洪涝灾害对城市化地区产生的威肋和带来的狠失愈来愈大 由于城市的不断扩建 使工业区 商业区和居民区等不渗水的面积越来越大
  • MySQL8.0.28安装教程

    MySQL8 0 28安装教程 一 下载并配置安装文件 1 进入官网下载mysql安装包 2 解压安装包 如下图所示 3 添加配置文件my ini 新建一个文本文件 将下列内容复制到文件中 并将文件另存为 ini格式 mysqld 设置33
  • Oracle 存储过程动态sql 中出现 日期格式 中文及符号等的处理 多重for循环

    最近针对一个多维度业务逻辑写了一个存储过程 遇到的问题留存以下 1 声明的变量 长度不够导致 这个当时客户不提供debug权限 无法查到问题 可通过 plsql 文件 命令窗口 exec 存储过程名称 可以大致拿到错误原因 写一点测试一点
  • unity3d Animator,Animation动画相关笔记

    Animation是一个动画效果 比如一个攻击动画 奔跑动画 AnimatorController是多个animation的集合 并且能够控制在多个animation之间切换展示 因此 双击一个AnimatorControllers类能看到
  • 华为路由交换设备配置综合实验(实验六合一)

    华为路由交换设备配置综合实验 单臂路由 三层交换 动静路由 VRRP路由 DHCP中继 捆绑Etrunk链路 实验六合一 实验拓扑图 目的 实现全网各个PC之间的互联互通 全部实验脚本如下 以下脚本直接复制即可使用 一 实现右部DHCP中继
  • CocosCreator之KUOKUO教你如何用瓦片地图生成碰撞赛车道

    本次引擎v2 0 10 目标 瓦片地图生成碰撞赛车道 过程 首先 我们需要撸一个瓦片地图 很简单的地图 分两层 墙和地面 然后 在CocosCreator中直接拖进层级管理器就行 然后你就会发现层自动形成节点并挂载组件了 然后给wall和c
  • 如何使用Python进行数据分析

    Python是一种通用编程语言 也被广泛应用于数据科学领域 Python的强大之处在于其庞大的生态系统和可扩展性 在本篇博文中 我们将讨论如何使用Python进行数据分析 1 安装Python及其库 首先 您需要安装Python并配置其环境
  • MYSQL删除表的记录后如何使ID从1开始

    转载于https www cnblogs com no7dw archive 2010 04 16 1713240 html YSQL删除表的记录后如何使ID从1开始 MYSQL删除表的记录后如何使ID从1开始 http hi baidu
  • bp神经网络算法的优缺点,bp神经网络缺点及克服

    前馈神经网络 BP神经网络 卷积神经网络的区别与联系 一 计算方法不同1 前馈神经网络 一种最简单的神经网络 各神经元分层排列 每个神经元只与前一层的神经元相连 接收前一层的输出 并输出给下一层 各层间没有反馈 2 BP神经网络 是一种按照
  • Python探索性数据分析(EDA)统计数据和建模

    探索性数据分析 EDA 在统计学中 探索性数据分析是一种分析数据集以总结其主要特征的方法 通常使用统计图形和其他数据可视化方法 可以使用或不使用统计模型 但主要是 EDA 用于查看数据可以告诉我们超出正式建模的内容 从而对比传统的假设检验
  • 面试官:你了解 QPS、TPS、RT、吞吐量 这些高并发性能指标吗?

    一 QPS 每秒查询 QPS Queries Per Second意思是 每秒查询率 是一台服务器每秒能够相应的查询次数 是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准 互联网中 作为域名系统服务器的机器的性能经常用每秒查询率
  • 上传图片!MultipartFile接收

    图片上传 记录一下调用图片接口上传 调用接口为OBS上传 自己封装过后的接口参数为 一个类型为String 为OBS桶下文件名称 一个为MultipartFile类型 需要调用的实现 生成本地二维码 本地保存 存储地址为项目目录下 之后调用
  • 监测本地文件变化,上传新文件至FTP(附python代码)

    通过循环不断的监测本地文件变化 一旦发现新的文件 就上传新文件至FTP coding utf 8 filezilla客户端 14148 admin coding utf 8 import os from ftplib import FTP
  • HBuilderX真机调试检测不到手机问题 IQQO9

    HBuilderX真机调试检测不到手机问题 1 开启usb调试功能 2 本人是iqqo 9 开启usb调试也检测不到 按下面操作进行
  • java主版本号_java比较版本号

    java比较版本号 比如1 0 3和1 2 1相比较考虑到可以用String的compareTo 方法 代码如下 public class MainClass public static void main String args Stri
  • 有关const *、* const 、const * const 之间的区别

    1 const 表示指针指向的值不可变 但是指针可以重新赋新地址 include
  • Fiddler-抓包步骤详解

    一 工作原理介绍 1 Fiddler抓包是在 客户端和服务器之间建立一个代理服务器 监听本机发出的请求和服务器返回的响应结果 允许监视 设置断点 甚至修改输入输出数据 2 Fiddler使用的代理地址是127 0 0 1 端口是8888 它
  • 从“白人饭”到美味佳肴,拓世AI为你打造独一无二的饮食计划

    最近 白人饭 作为一种饮食方式在社交媒体上火了 成为打工人新的 午餐之光 所谓 白人饭 就是花最少的功夫准备仅仅能维系基本器官正常运作的食物 主打生吃或者简单炒 比如一个丹麦网友晒出的同事的午饭就是几根小胡萝卜和青菜 德国网友中午只吃一个白
  • Pycharm同一目录下py文件相互调用

    1 首先确保所在目录是Python Package而不是一般的New Stratch File 或者是普通的Directory也可以 Python Package下有 init py或自己建空的 init py 2 pycharm不会将当前
  • 免费JS富文本编辑器 总有一款会适合你

    什么是富文本编辑器 概述 javascript Text Editor 我们平常在页面上写文章 或者 后台发布文章内容 或内容描述等 一直都是用的是富文本编辑器 包括很多论坛发帖的文字窗口也是典型的富文本编辑器 它跟office中的word