vue中使用富文本编辑器CKEditor(静态资源引入)

一、选择适合需求功能的插件并下载(CKFinder是收费组件)。

二、使用
1.将build目录中的文件放到vue项目的public/ckedito5目录下。
2.在index.html中引入。

<script src="/public/ckeditor5/ckeditor.js"></script>

3.在main.js中设置全局使用方法。

Vue.prototype.$ClassicEditor = window.ClassicEditor; 

4.配置上传图片,编译修改文件。官方文档-安装插件

ckeditor默认使用CKFinderUploadAdapter,这个适配器没有配置认证的选项。按官方文档需要改为使用SimpleUploadAdapter。

①在下载的官方源码中,安装适配器。

npm install @ckeditor/ckeditor5-upload --save

②修改src/ckeditor.js

// 注释
import CKFinderUploadAdapter from '@ckeditor/ckeditor5-adapter-ckfinder/src/uploadadapter.js';
// 加入
import SimpleUploadAdapter from '@ckeditor/ckeditor5-upload/src/adapters/simpleuploadadapter';

// 把CKFinderUploadAdapter替换为SimpleUploadAdapter
Editor.builtinPlugins = [
    ……,
	SimpleUploadAdapter,
]

③编译

npm run build

④替换public/ckedito5下生成的editor.js文件。

5.代码渲染部分.

html

<!-- 工具栏容器 -->
<div id="toolbar-container"></div>
<!-- 编辑器容器 -->
<div id="editor"></div>
js

data() {
   return {
       editor:null,//编辑器实例
    }
},

initCKEditor(){
   this.$ClassicEditor.create( document.querySelector( '#editor' ), { 
         toolbar: {//工具栏内容设置
             items: [
                 'heading','|','bold','italic','link','bulletedList',
                 'numberedList','|','outdent','indent','|','imageUpload',
                 'blockQuote','insertTable','undo','redo'
             ]
         },
         simpleUpload: {
             uploadUrl: '/upImg',//上传图片的接口
             withCredentials: true,
             headers: {
                 token:localStorage.getItem('token')//token校验用
             }
         },
         language: 'zh-cn',
         image: {
             toolbar: [
                 'imageTextAlternative',
                 'imageStyle:inline',
                 'imageStyle:block',
                 'imageStyle:side'
             ]
         },
         table: {
             contentToolbar: [
                 'tableColumn',
                 'tableRow',
                 'mergeTableCells'
             ]
         },
         licenseKey: '',
         })
         .then( editor => {
             // window.editor = editor;
             //不用window.editor是因为在修改功能中,不能回显数据。
             this.editor= editor;
         })
         .catch( () => {
             
         });
 },

6.回显数据方法

this.editor.setData('修改功能时,需要回显的数据信息')

7.保存时获取数据

this.editor.getData()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值