项目使用vue-cli 3.x版本,tinymce5
1. 安装及引用
注:只安装tinymce-vue不可以,还需安装tinymce,否则会报错
1 | npm install tinymce |
2. 初始化编辑器(记录出现的问题和解决方案)
按示例初始化发现编辑器不显示,报“theme.js:1 Uncaught SyntaxError: Unexpected token <”
这个错,需要手动引入tinymce主题,在init({})
方法里加theme: 'silver'
,没用。import 'tinymce/themes/silver/theme'
不报错了但是编辑器还是不显示,继续研究,发现还需要定义“skin_url”,在init({})
里加skin: "oxide"
没用。先在public目录下新建一个文件夹命名为tinymce,然后在node_modules里找到tinymce的skin包,复制到public/tinymce
里,在创建tinymce时的init({})
里添加下面这行代码:skin_url: '/tinymce/skins/ui/oxide',
3. 配置
一些常用的配置属性
1
2
3
4
5
6browser_spellcheck: true, // 拼写检查
branding: false, // 去水印
elementpath: false, //禁用编辑器底部的状态栏
statusbar: false, // 隐藏编辑器底部的状态栏
paste_data_images: true, // 允许粘贴图像
menubar: false, // 隐藏最上方menuplugins
使用某个插件需要先引入这个插件,例:1
2
3
4import 'tinymce/plugins/fullscreen'
import 'tinymce/plugins/preview'
plugins: 'fullscreen preview'toolbar
可以使用|
给工具栏分组,把某一类功能划分成一组,例:toolbar: 'bold italic underline | alignleft aligncenter alignright'
4. 定制
将语言改为中文,步骤:
1.在官网下载语言包https://www.tiny.cloud/get-tiny/language-packages/
2.把下载的语言包放到之前新建的tinymce文件夹里
3.初始化时添加以下代码
1 | language_url: `/tinymce/langs/zh_CN.js`, |
在tinymce5工具栏添加自定义功能按钮
1 | this.tinymceInit = { |
关于tinymce完整的例子在我的github项目里https://github.com/Inspiration1/asteroid
Vue中封装使用tinymce富文本编辑器
准备工作
安装tinymce-vuenpm install @tinymce/tinymce-vue -S
下载tinymcenpm install tinymce -S
下载tinymce完成后在node_modules中找到tinymce/skins
目录,将其复制到static\tinymce
目录下面;
下载中文语言包;
下载完成后将其解压到static\tinymce
目录下面;
组件封装
1 | <template> |
页面中使用:
1 | <Tinymce :curValue="initContent" @input="newContent"></Tinymce> |