- Editor.md
- TinyMCE
- SimpleMDE
- CKEditor
还有一些,这里讲的是我用的TinyMCE
下载开发版本,我下载的最新版 tinymce_6.4.2_dev.zip
将压缩包解压后可以看到下面目录:

点进js目录,发现还有一个tinymce目录(真正用到的),里面的每个目录含义如下:

其他目录文件应该是构建、修补文件。总之不要丢掉,将js下的整个tinymce目录复制到你项目中

这里就用 1.html做个示例,哈哈。
- html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>Titletitle>
- head>
- <body>
- <textarea>textarea>
- body>
- <script src="tinymce/tinymce.min.js">script>
- <script>
- tinymce.init({ //初始化配置
- selector: 'textarea', // 指定要应用编辑器的 textarea 元素
- toolbar: 'undo redo | formatselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image', //工具栏配置
- plugins: 'advlist autolink lists link image charmap preview anchor', //插件列表
- height: 400 //编译器的高度
- });
- script>
上面就是基础默认配置,运行就可以看到下图模样:
还是蛮不错的,但是工具栏都是英文。
语言包下载:Language Packages | Trusted Rich Text Editor | TinyMCE

但是下载解压后发现是zh_Hans.js,然后我配置后也没有转换成中文,所以我想 6版本里没有成功转换简体中文的js。于是我下载了 5版本的所有语言包,找到了zh_CN.js,它就可以帮助我们成功转换为简体中文。
链接:https://pan.baidu.com/s/1dzo6RfxRQebpJu5WfL9rcg?pwd=ialp
提取码:ialp
我们将zh_CN.js文件复制到langs目录下,
- html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>Titletitle>
- head>
- <body>
- <textarea>textarea>
- body>
- <script src="tinymce/tinymce.min.js">script>
- <script>
- tinymce.init({
- selector: 'textarea', // 指定要应用编辑器的 textarea 元素
- language: 'zh_CN', //设置中文
- toolbar: 'undo redo | formatselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image', //工具栏配置
- plugins: 'advlist autolink lists link image charmap preview anchor', //插件列表
- height: 400 //编译器的高度
- });
- script>
再运行发现就是中文的界面了

plugins: 'advlist autolink lists link image charmap preview anchor', //插件列表 - skin:"oxide-dark", //定义工具栏样式
- content_css: 'tinymce/skins/content/dark/content.css', //定义编辑内容部分样式
branding:false, - setup:function (editor){
- editor.ui.registry.addButton('clear',{ //注册一个名为clear的按钮,定义行为
- text:'清空内容', //标题
- onAction:function (){ //点击触发行为
- editor.setContent('')//清空编译器
- }
- }),
- editor.ui.registry.addMenuButton('heading', {
- text: '标题',
- fetch: function(callback) { //菜单点击时触发,并指定回调函数
- let items = [ //定义菜单项的内容
- { type: 'menuitem', text: '标题 1', onAction: function() { editor.execCommand('mceInsertContent', false, ''); } }, //editor.execCommand(内容插入到编辑器,表示不替换选中内容,内容)
- { type: 'menuitem', text: '标题 2', onAction: function() { editor.execCommand('mceInsertContent', false, ''); } },
- { type: 'menuitem', text: '标题 3', onAction: function() { editor.execCommand('mceInsertContent', false, ''); } }
- ];
- callback(items); //将菜单项数组传递给回调函数
- }
- });
- }
这个按钮的位置是根据toolbar配置的顺序决定的。