<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      15、Vue CLI 3+tinymce 5富文本編輯器整合

      富文本編輯器里大佬們都說tinymce NB!

      插件安裝

      inymce官方提供了一個(gè)vue的組件tinymce-vue
      如果有注冊(cè)或購(gòu)買過服務(wù)的話,直接通過組件配置api-key直接使用,懶的注冊(cè)或者購(gòu)買的直接下載tinymce

      安裝tinymce

      npm install tinymce -S

      安裝tinymce-vue

      npm install @tinymce/tinymce-vue -S

      package.json

      "@tinymce/tinymce-vue": "^2.1.0",
      "tinymce": "^5.0.11",

      下載中文語言包

      tinymce提供了很多的語言包,這里我們下載中文語言包
      地址:https://www.tiny.cloud/get-tiny/language-packages/

      image

      下載完后放到靜態(tài)文件public目錄下

      1、在public目錄下新建tinymce目錄,將上面下載的語言包解壓到該目錄
      2、在node_modules里面找到tinymce目錄,將此目錄下skins目錄復(fù)制到public/tinymce里面

      image

      tinymce使用

      封裝成組件
      <template>
        <div class="tinymce-box">
          <editor
            v-model="myValue"
            :init="init"
            :disabled="disabled"
            @click="onClick">
          </editor>
        </div>
      </template>
      
      <script>
      // 文檔 http://tinymce.ax-z.cn/
      // 引入組件
      import tinymce from 'tinymce/tinymce' // tinymce默認(rèn)hidden,不引入不顯示
      import Editor from '@tinymce/tinymce-vue'
      
      // 引入富文本編輯器主題的js和css
      import 'tinymce/skins/content/default/content.css'
      import 'tinymce/themes/silver/theme.min.js'
      import 'tinymce/icons/default/icons' // 解決了icons.js 報(bào)錯(cuò)Unexpected token '<'
      
      // 編輯器插件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'// 字?jǐn)?shù)統(tǒng)計(jì)插件
      import 'tinymce/plugins/link'
      import 'tinymce/plugins/code'
      import 'tinymce/plugins/preview'
      import 'tinymce/plugins/fullscreen'
      import 'tinymce/plugins/help'
      export default {
        components: {
          Editor
        },
        name: 'Tinymce',
        props: {
          // 默認(rèn)的富文本內(nèi)容
          value: {
            type: String,
            default: ''
          },
          // 基本路徑,默認(rèn)為空根目錄,如果你的項(xiàng)目發(fā)布后的地址為目錄形式,
          // 即abc.com/tinymce,baseUrl需要配置成tinymce,不然發(fā)布后資源會(huì)找不到
          baseUrl: {
            type: String,
            default: window.location.origin ? window.location.origin : ''
          },
          // 禁用
          disabled: {
            type: Boolean,
            default: false
          },
          plugins: {
            type: [String, Array],
            default: 'link lists image code table wordcount media preview fullscreen help'
          },
          toolbar: {
            type: [String, Array],
            default: 'bold italic underline strikethrough | fontsizeselect | formatselect | forecolor backcolor | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent blockquote | undo redo | link unlink code lists table image media | removeformat | fullscreen preview'
          }
        },
        data () {
          return {
            init: {
              language_url: `${this.baseUrl}/tinymce/langs/zh_CN.js`,
              language: 'zh_CN',
              skin_url: `${this.baseUrl}/tinymce/skins/ui/oxide`,
              // skin_url: 'tinymce/skins/ui/oxide-dark', // 暗色系
              convert_urls: false,
              height: 300,
              // content_css(為編輯區(qū)指定css文件),加上就不顯示字?jǐn)?shù)統(tǒng)計(jì)了
              // content_css: `${this.baseUrl}tinymce/skins/content/default/content.css`,
              // (指定需加載的插件)
              plugins: this.plugins,
              toolbar: this.toolbar, // (自定義工具欄)
      
              statusbar: true, // 底部的狀態(tài)欄
              menubar: 'file edit insert view format table tools help', // (1級(jí)菜單)最上方的菜單
              branding: false, // (隱藏右下角技術(shù)支持)水印“Powered by TinyMCE”
              // 此處為圖片上傳處理函數(shù),這個(gè)直接用了base64的圖片形式上傳圖片,
              // 如需ajax上傳可參考https://www.tiny.cloud/docs/configure/file-image-upload/#images_upload_handler
              images_upload_handler: (blobInfo, success, failure) => {
                const img = 'data:image/jpeg;base64,' + blobInfo.base64()
                success(img)
                console.log(failure)
              }
            },
            myValue: this.value
          }
        },
        mounted () {
          console.log(window)
          tinymce.init({})
        },
        methods: {
          // 添加相關(guān)的事件,可用的事件參照文檔=> https://github.com/tinymce/tinymce-vue => All available events
          // 需要什么事件可以自己增加
          onClick (e) {
            this.$emit('onClick', e, tinymce)
          },
          // 可以添加一些自己的自定義事件,如清空內(nèi)容
          clear () {
            this.myValue = ''
          }
        },
        watch: {
          value (newValue) {
            this.myValue = newValue
          },
          myValue (newValue) {
            this.$emit('input', newValue)
          }
        }
      }
      
      </script>
      <style scoped>
      
      </style>
      
      
      
      組件引用
      <template>
        <div class="home">
          <tinymce
          id="myedit"
          ref="editor"
          v-model="msg"
          :disabled="disabled"
          @onClick="onClick"
          />
          <button @click="clear">清空內(nèi)容</button>
          <button @click="disabled = true">禁用</button>
        </div>
      </template>
      <script>
      import tinymce from '@/components/tinymce'
      
      export default {
        name: 'tinymcedemo',
        components: {
          tinymce
        },
        data () {
          return {
            disabled: false,
            msg: 'Welcome to Use Tinymce Editor',
            isabled: false
          }
        },
        methods: {
          // 內(nèi)容
          getContent () {
            console.log('內(nèi)容', this.msg)
          },
          // 鼠標(biāo)單擊的事件
          onClick (e, editor) {
            console.log('Element clicked')
            console.log(e)
            console.log(editor)
          },
          // 清空內(nèi)容
          clear () {
            console.log(this.$refs.editor)
            this.$refs.editor.clear()
          }
        }
      }
      </script>
      
      

      image

      更詳細(xì)看官方api

      tinymce高版本

      1、 報(bào)錯(cuò) icons.js 報(bào)錯(cuò)Unexpected token '<'

      import 'tinymce/icons/default/icons' //解決了icons.js 報(bào)錯(cuò)Unexpected token '<'

      2、@tinymce/tinymce-vue版本過高報(bào)錯(cuò)(4.0.0以上版本是vue3.0的)

      解決方法將@tinymce/tinymce-vue版本改成3.2.8

       warning  in ./node_modules/@tinymce/tinymce-vue/lib/es2015/main/ts/components/Editor.js
      
      "export 'defineComponent' was not found in 'vue'
      
       warning  in ./node_modules/@tinymce/tinymce-vue/lib/es2015/main/ts/components/Editor.js
      
      "export 'h' was not found in 'vue'
      
       warning  in ./node_modules/@tinymce/tinymce-vue/lib/es2015/main/ts/components/Editor.js
      
      "export 'onActivated' was not found in 'vue'
      
       warning  in ./node_modules/@tinymce/tinymce-vue/lib/es2015/main/ts/components/Editor.js
      
      "export 'onBeforeUnmount' was not found in 'vue'
      
       warning  in ./node_modules/@tinymce/tinymce-vue/lib/es2015/main/ts/components/Editor.js
      
      "export 'onDeactivated' was not found in 'vue'
      
       warning  in ./node_modules/@tinymce/tinymce-vue/lib/es2015/main/ts/components/Editor.js
      
      "export 'onMounted' was not found in 'vue'
      
       warning  in ./node_modules/@tinymce/tinymce-vue/lib/es2015/main/ts/components/Editor.js
      
      "export 'ref' was not found in 'vue'
      
       warning  in ./node_modules/@tinymce/tinymce-vue/lib/es2015/main/ts/components/Editor.js
      
      "export 'toRefs' was not found in 'vue'
      
       warning  in ./node_modules/@tinymce/tinymce-vue/lib/es2015/main/ts/components/Editor.js
      
      "export 'watch' was not found in 'vue'
      

      image

      posted @ 2019-07-06 13:58  飛刀還問情  閱讀(28315)  評(píng)論(21)    收藏  舉報(bào)
      主站蜘蛛池模板: 果冻传媒一区二区天美传媒| 人妻熟女一二三区夜夜爱| 国产偷国产偷亚洲高清人| 国产播放91色在线观看| 男人的天堂av一二三区| 老熟妇高潮一区二区三区| 精品人妻av中文字幕乱| 韩国av无码| 亚洲综合不卡一区二区三区| 欧美日本精品一本二本三区| 99re6这里有精品热视频| 婷婷四房综合激情五月在线| 亚洲国产成人精品无色码| 亚洲中文字幕无码爆乳| 亚洲精品码中文在线观看| 久久婷婷五月综合97色直播| 人妻精品动漫h无码| 国产怡春院无码一区二区| 久久精品国产亚洲αv忘忧草| 久久这里只有精品免费首页| 久久99精品久久久大学生| 国产精品福利一区二区久久| 国产高跟黑色丝袜在线| 亚洲精品中文字幕一区二| 中文字幕波多野不卡一区| 国产精品国产片在线观看| 亚洲中文字幕久久精品蜜桃| AV无码不卡一区二区三区| 国产精品国产精品国产专区不卡| 国产精品色内内在线播放| 18成禁人视频免费| 久久人妻夜夜做天天爽| 国产成人麻豆亚洲综合无码精品| 精品人妻一区二区三区蜜臀| 国产九九视频一区二区三区| 丝袜美腿一区二区三区| 亚洲综合伊人五月天中文| 国产黄色一级片在线观看| 亚洲中文字幕无码av永久| 亚洲国产精品美日韩久久| 国产一区二区高清不卡|