vue-cli -- Tinymce富文本编辑器挖坑
一、安装Tinymce
// 首先安装tinymce的vue组件,因为没有注册服务
npm install @tinymce/tinymce-vue -S
// 接着安装tinymce
npm install tinymce -S
或者在package.json文件中配置
"@tinymce/tinymce-vue": "^2.0.0",
"tinymce": "^5.0.3",
二、安装语言包
正常情况下,tinymce是英文的,所以需要下载中文包
三、配置文件
将下好的中文包和tinymce中的skins文件一起拷贝复制到public中的tinymce中
四、引入tinymce
在使用页面引入tinymce
import tinymce from 'tinymce/tinymce'
import Editor from '@tinymce/tinymce-vue'
import 'tinymce/themes/silver'
Tips 这是个组件,需要在components中注册后才能使用
<editor ></editor>
init
初始化配置
init: {
language_url: '/tinymce/langs/zh_CN.js',// 语言包的路径
language: 'zh_CN',//语言
skin_url: '/tinymce/skins/ui/oxide',// skin路径,注意这个,很多网上教程都是skins/lightgray,但是发现其实并没有这个玩意儿
height: 300,//编辑器高度
branding: false,//是否禁用“Powered by TinyMCE”
menubar: false,//顶部菜单栏显示
}
拓展插件
刚创建的编辑器是非常简陋的,很多功能需要引入插件,并在初始化中配置plugins,并在toolbar上面配置对应按钮
import 'tinymce/plugins/image'// 插入上传图片插件
import 'tinymce/plugins/media'// 插入视频插件
import 'tinymce/plugins/table'// 插入表格插件
import 'tinymce/plugins/lists'// 列表插件
import 'tinymce/plugins/wordcount'// 字数统计插件
init: {
plugins: 'lists image media table wordcount',
toolbar: 'undo redo | formatselect | bold italic forecolor backcolor | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | lists image media table | removeformat',
}
五、初始化tinymce
在mounted钩子函数里初始化
tinymce.init({})
正常图片没有上传功能,需要在init里面添加上传图片方法
init: {
// 这个是base64方法处理后的
images_upload_handler: (blobInfo, success, failure) => {
const img = "data:image/jpeg;base64," + blobInfo.base64();
success(img);
}
}
字数统计好像只对中文和标点符号有效果,输入英文字母好像不管输入多少都会统计成1个