美文网首页
vue中使用Tinymce编辑器

vue中使用Tinymce编辑器

作者: 年少的欢喜卐 | 来源:发表于2020-02-20 12:02 被阅读0次
  1. 首先安装所需的两个包
npm install tinymce -S npm --save @tinymce/tinymce-vue
  1. 查看vue-cli脚手架版本号,根据vue-cli版本号进行以下操作
vue -V
npm list --depth=0 -g
  1. 复制内容和样式包
    ① 在 node_modules 文件夹中找到 tinymce/skins 文件,进行复制;如果vue-cli的版本号为2就将其内容复制到static文件夹中,若版本号为3就将其内容复制到public文件夹中,在下是版本为2的如图所示


    node_modules文件中的skins
    static文件夹结构

② 下载 zh_CN.js中文包,复制到 tinymce文件中 点击下载

  1. 代码内容
<template>
  <div class="tinymce-editor">
    <editor v-model="myValue"
            :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'
    // 编辑器插件plugins
    // 更多插件参考:https://www.tiny.cloud/docs/plugins/
    import 'tinymce/plugins/image'// 插入上传图片插件
    import 'tinymce/plugins/media'// 插入视频插件
    import 'tinymce/plugins/table'// 插入表格插件
    import 'tinymce/plugins/lists'// 列表插件
    import 'tinymce/plugins/wordcount'// 字数统计插件
    import 'tinymce/plugins/autoresize' // 高度自适应
    export default {
      data () {
            return {
          // 初始化tinyEdit
          init: {
            language_url: '/static/tinymce/zh_CN.js',
            language: 'zh_CN',
            skin_url: '/static/tinymce/skins/ui/oxide',
            selector: 'textarea',
            plugins: 'autoresize',
            toolbar: 'undo redo |  formatselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | lists image media table | removeformat',
            branding: false,
            menubar: false,
            images_upload_handler: (blobInfo, success, failure) => {
              const img = 'data:image/jpeg;base64,' + blobInfo.base64()
              success(img)
            }
         }
      },
      mounted () {
        tinymce.init({})
      },
      methods: {
        onClick (e) {
         this.$emit('onClick', e, tinymce)
        }
      },
      watch: {
       value (newValue) {
         this.myValue = newValue
       },
       myValue (newValue) {
         this.$emit('input', newValue)
       }
     }
    }
</script>
  1. 页面样式


    效果图

相关文章

网友评论

      本文标题:vue中使用Tinymce编辑器

      本文链接:https://www.haomeiwen.com/subject/ektxqhtx.html