在 Vue 中引入 Tinymce 富文本编辑器
在 Vue 脚手架中 Tinymce 富文本编辑器废话不多说,直接开始1.下载依赖:下载 tinymce **tinymce-vue **npm i tinymce tinymce-vue -S2.复制内容和样式包在 node_modules 文件夹中找到 tinymce/skins 文件,复制到 **public/tinymce **文件夹下下载 中文包 解压后 ...
·
在 Vue 脚手架中 Tinymce 富文本编辑器
废话不多说,直接开始
1.下载依赖:
下载 tinymce 和 tinymce-vue
npm i tinymce tinymce-vue -S
2.复制内容和样式包
-
在 node_modules 文件夹中找到 tinymce/skins 文件,复制到 **public/tinymce **文件夹下
-
下载 中文包 解压后 复制到 tinymce/langs 文件中
3.创建 tinymce-editor 组件
<template>
<div>
<editor v-model="content"
:init="init"
:disabled="disabled"
@onClick="onClick">
</editor>
</div>
</template>
<script>
import tinymce from 'tinymce/tinymce'
import Editor from '@tinymce/tinymce-vue'
import 'tinymce/themes/silver'
// 插件
import 'tinymce/plugins/image' // 上传图片插件
import 'tinymce/plugins/media' // 视频插件
import 'tinymce/plugins/table' // 表格插件
import 'tinymce/plugins/lists' // 列表插件
import 'tinymce/plugins/wordcount' // 字数统计插件
export default {
components: {
Editor
},
props: {
value: {
type: String,
default: ''
},
disabled: {
type: Boolean,
default: false
},
plugins: {
type: [String, Array],
default: 'lists image media table wordcount'
},
toolbar: {
type: [String, Array],
default: 'undo redo | formatselect | bold italic forecolor backcolor | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | lists image media table | removeformat'
}
},
data () {
return {
init: {
language_url: '/tinymce/langs/zh_CN.js', // 中文包路径
language: 'zh_CN', // 中文包名称
skin_url: '/tinymce/skins/ui/oxide', // 默认白色
// skin_url: '/tinymce/skins/ui/oxide-dark', // 暗色
height: 600, // 设置高度
// width: 150, // 设置宽度
plugins: this.plugins,
toolbar: this.toolbar,
branding: false,
menubar: false,
// 此处为图片上传处理函数,用了base64的图片上传格式,具体可以参考文档
images_upload_handler: (blobInfo, success, failure) => {
const img = 'data:image/jpeg;base64,' + blobInfo.base64()
success(img)
}
},
content: this.content
}
},
mounted () {
tinymce.init({})
},
methods: {
// 添加相关的事件
onClick (e) {
this.$emit('onClick', e, tinymce)
},
// 可以添加一些自己的自定义事件,如清空内容
clearContent () {
this.content = ''
}
}
}
</script>
更多的插件可以参考:https://www.tiny.cloud/docs/plugins/
更多事件参照文档: https://github.com/tinymce/tinymce-vue (找All available events)
4.在需要的页面中引入
<template>
<div class="tinymce">
<tinymce-editor></tinymce-editor>
</div>
</template>
<script>
import TinymceEditor from '@/components/tinymce-editor'
export default {
components: {
TinymceEditor
}
}
</script>
5.大功告成
更多推荐
已为社区贡献1条内容
所有评论(0)