vuecli3.x中輕松4步帶你使用tinymce的步驟
前言
筆者在使用tinymce時(shí)發(fā)現(xiàn)跟著網(wǎng)上的方法去做,基本都會(huì)因?yàn)榘姹镜纫恍﹩?wèn)題報(bào)錯(cuò),所以筆者總結(jié)了以下方案!可以收藏哦
第一步:
npm install @tinymce/tinymce-vue@3.2.2 tinymce@5.3.1 -S
第二步:
找到node_modules中的skins文件夾,然后在項(xiàng)目中的public下新建tinymce文件夾,然后將剛剛找到的整個(gè)skins文件夾拷貝到public的tinymce目錄下。
接著去官網(wǎng)下載語(yǔ)言包,解壓,將langs文件夾拷貝到public的tinymce文件夾下(和skins文件夾同級(jí))
第三步:
在components文件夾下新建tinymce組件的文件夾,新建index.vue文件,復(fù)制以下代碼進(jìn)去:
<template> <div class="tinymce-editor"> <Editor :id="editorId" v-model="editorValue" :init="editorInit" /> </div> </template> <script> // 引入組件 import tinymce from 'tinymce/tinymce'; import Editor from '@tinymce/tinymce-vue'; import 'tinymce/icons/default/icons'; import 'tinymce/themes/silver'; // 引入富文本編輯器主題的js和css import 'tinymce/themes/silver/theme.min'; import 'tinymce/skins/ui/oxide/skin.min.css'; // 擴(kuò)展插件 import 'tinymce/plugins/image'; import 'tinymce/plugins/link'; import 'tinymce/plugins/code'; import 'tinymce/plugins/table'; import 'tinymce/plugins/lists'; import 'tinymce/plugins/wordcount'; // 字?jǐn)?shù)統(tǒng)計(jì)插件 import 'tinymce/plugins/media';// 插入視頻插件 import 'tinymce/plugins/template';// 模板插件 import 'tinymce/plugins/fullscreen'; import 'tinymce/plugins/paste'; import 'tinymce/plugins/preview'; import 'tinymce/plugins/contextmenu'; import 'tinymce/plugins/textcolor'; export default { name: 'TinymceEditor', components: {Editor}, props: { height: { type: Number, default: 500 }, id: { type: String, default: 'tinymceEditor' }, value: { type: String, default: '' }, plugins: { type: [String, Array], default: 'link lists image code table wordcount media fullscreen preview paste contextmenu textcolor' }, toolbar: { type: [String, Array], default: 'fontselect | bold italic underline strikethrough | link unlink image | undo redo | fontsizeselect | forecolor backcolor | alignleft aligncenter alignright alignjustify | bullist numlist | outdent indent blockquote | code | removeformat' } }, data() { return { editorInit: { language_url: `${window.baseUrl}/tinymce/langs/zh_CN.js`, language: 'zh_CN', skin_url: `${window.baseUrl}/tinymce/skins/ui/oxide`, content_css: `${window.baseUrl}/tinymce/skins/content/default/content.css`, height: this.height, content_style: '* { padding:0; margin:0; } img {max-width:100% !important }', plugin_preview_width: 375, // 預(yù)覽寬度 plugin_preview_height: 668, lineheight_val: "1 1.1 1.2 1.3 1.35 1.4 1.5 1.55 1.6 1.75 1.8 1.9 1.95 2 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 3 3.1 3.2 3.3 3.4 4 5", fontsize_formats: "8pt 10pt 11pt 12pt 13pt 14pt 15pt 16pt 17pt 18pt 24pt 36pt", font_formats:"微軟雅黑='微軟雅黑';宋體='宋體';黑體='黑體';仿宋='仿宋';楷體='楷體';隸書(shū)='隸書(shū)';幼圓='幼圓';Andale Mono=andale mono,times;Arial=arial,helvetica,sans-serif;Arial Black=arial black,avant garde;Book Antiqua=book antiqua,palatino;Comic Sans MS=comic sans ms,sans-serif;Courier New=courier new,courier;Georgia=georgia,palatino;Helvetica=helvetica;Impact=impact,chicago;Symbol=symbol;Tahoma=tahoma,arial,helvetica,sans-serif;Terminal=terminal,monaco;Times New Roman=times new roman,times;Trebuchet MS=trebuchet ms,geneva;Verdana=verdana,geneva;Webdings=webdings;Wingdings=wingdings", plugins: this.plugins, powerpaste_word_import: 'merge', toolbar: this.toolbar, paste_data_images: true, statusbar: true, // 底部的狀態(tài)欄 menubar: true, // 最上方的菜單 branding: false, // 水印“Powered by TinyMCE” images_upload_handler: (blobInfo, success, failure) => { this.$emit('handleImgUpload', blobInfo, success, failure); } }, editorId: this.id, newValue: '' }; }, watch: { newValue(newValue) { this.$emit('input', newValue); } }, mounted() { tinymce.init({}); }, computed: { editorValue: { get() { return this.value; }, set(val) { this.newValue = val; } } }, methods: { // https://github.com/tinymce/tinymce-vue => All available events clear() { this.editorValue = ''; } } }; </script>
第四步:
在要使用的組件中加入以下代碼:
import TinymceEditor from '@/components/tinymce'; components: { //注冊(cè)TinymceEditor組件 TinymceEditor }, data() { return { content: '', //富文本的內(nèi)容 baseUrl: window.baseUrl, //默認(rèn)為'' 空字符串 } } computed:{ realHeight() { return (window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight) - 200 } } methods:{ async imgUpload(blobInfo, success, failure) { const formData = new FormData(); formData.append('file', blobInfo.blob()); try { const res = await uploadFile(formData); success(this.server + res); console.log(this.server + res); } catch (e) { console.log(e); failure('上傳失敗:' + e); } }, } 模板中使用: <tinymce-editor id="editor" ref="editor" v-model="content" :height="realHeight" @handleImgUpload="imgUpload" />
然后就大功告成:
到此這篇關(guān)于vuecli3.x中輕松4步帶你使用tinymce的步驟的文章就介紹到這了,更多相關(guān)vuecli3.x使用tinymce內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue2.x中的provide和inject用法小結(jié)
這篇文章主要介紹了vue2.x中的provide和inject用法小結(jié),本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2023-12-12Vue2.x中利用@font-size引入字體圖標(biāo)報(bào)錯(cuò)的解決方法
今天小編就為大家分享一篇Vue2.x中利用@font-size引入字體圖標(biāo)報(bào)錯(cuò)的解決方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-09-09詳解如何使用Vue-PDF在應(yīng)用中嵌入PDF文檔
在現(xiàn)代Web應(yīng)用中,PDF文檔的使用非常普遍,因?yàn)樗梢栽诟鞣N設(shè)備和操作系統(tǒng)上保持一致的外觀和格式,本文我們就來(lái)探討一下如何在Vue.js應(yīng)用中使用vue-pdf庫(kù)嵌入PDF文檔吧2023-08-08vue vuex vue-rouert后臺(tái)項(xiàng)目——權(quán)限路由(適合初學(xué))
這篇文章主要介紹了vue vuex vue-rouert后臺(tái)項(xiàng)目——權(quán)限路由,通過(guò)本文可以很清除的捋清楚vue+vuex+vue-router的關(guān)系,本版本非常簡(jiǎn)單,適合初學(xué)者,需要的朋友可以參考下2017-12-12從0搭建Vue3組件庫(kù)如何使用?glup?打包組件庫(kù)并實(shí)現(xiàn)按需加載
這篇文章主要介紹了從0搭建Vue3組件庫(kù)如何使用?glup?打包組件庫(kù)并實(shí)現(xiàn)按需加載,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-03-03解決Vue運(yùn)算符報(bào)錯(cuò):Syntax Error: Unexpected token問(wèn)題
這篇文章主要介紹了解決Vue運(yùn)算符報(bào)錯(cuò):Syntax Error: Unexpected token問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01