ckeditor5富文本编辑器在vue中的使用
先介绍下ckeditor5的使用方式:
安装依赖:
npm install --save @ckeditor/ckeditor5-vue @ckeditor/ckeditor5-build-classic
要创建编辑器实例,必须首先将编辑器构建和组件模块导入应用程序的根文件中(例如,main.js在由Vue CLI生成时)。然后,使用以下Vue.use()方法启用组件:
import Vue from 'vue';
import CKEditor from '@ckeditor/ckeditor5-vue'; Vue.use( CKEditor );
在组件中的具体使用方式如下:
<template>
<div id="app">
<ckeditor :editor="editor" v-model="editorData" :config="editorConfig"></ckeditor>
</div>
</template> <script>
import ClassicEditor from '@ckeditor/ckeditor5-build-classic'; export default {
name: 'app',
data() {
return {
editor: ClassicEditor,
editorData: '<p>Content of the editor.</p>',
editorConfig: {
// The configuration of the editor.
}
};
}
}
</script>
如果需要自定义配置,则可以配置如下:
editorConfig: {
language: 'zh-cn',
toolbar: ['heading', 'fontSize', 'highlight', 'highlight:yellowMarker', 'highlight:greenMarker', 'highlight:pinkMarker', 'highlight:blueMarker', 'fontFamily', 'alignment', 'imageUpload', 'bold', 'italic', 'underline', 'imageStyle:full', 'imageStyle:alignLeft', 'imageStyle:alignRight', 'link', 'undo', 'redo'],
fontSize: {
options: [8, 9, 10, 11, 12, 'default', 14, 16, 18, 20, 22, 24, 26, 28, 36, 44, 48, 72],
},
highlight: {
options: [
{ model: 'blackPen', class: 'pen-black', title: '黑色', color: 'var(--ck-highlight-pen-black)', type: 'pen' },
{ model: 'redPenPen', class: 'pen-red', title: '红色', color: 'var(--ck-highlight-pen-red)', type: 'pen' },
}
},
ckfinder: {
uploadUrl: `${store.getters.currentStack.baseURL}/ckeditor/upload`,
// 后端处理上传逻辑返回json数据,包括uploaded 上传的字节数 和url两个字段
},
}
这里要说明的是上传接口必须返回的有uploaded和url这两个字段才可以,如下图:

设置ckeditor5输入区域的高度:
<style>
.ck-editor__editable { min-height: 100px; }
</style>
效果图如下:

至此,就大功告成了!!!!!!
在此要说明一点,ckeditor5在ie11下是不兼容的,要想在ie11下正常运行,可能需要较低版本的ckeditor,,,在解决兼容性的时候,发现ckeditor4是兼容ie11的。
下面我们介绍一下ckeditor4的使用方式:
从CKEditor 网站:https://ckeditor.com/ckeditor-4/download/下载CKEditor,这个是我项目中下载好的包,已经上传到我的百度网盘
链接:https://pan.baidu.com/s/1_fskJGVMedK_7ghvK8Q4qg
提取码:yals
复制这段内容后打开百度网盘手机App,操作更方便哦
引用ckeditor,并且需要在webpack.base.config.js中配置如下:

<script type="text/javascript" src="static/ckeditor/ckeditor.js"></script>
<textarea id="editor" rows="10" cols="80"></textarea>
import CKEDITOR from "CKEDITOR"
mounted: function () {
CKEDITOR.replace("editor", {height: "300px", width: "100%", toolbar: "Full"});
this.editor = CKEDITOR.instances.editor;
console.log(this.editor.getData());
},
效果如下图:

在此说一下关于图片上传的配置:
修改ckeditor文件夹下config.js:
config.removeDialogTabs = 'image:advanced;image:Link';//隐藏超链接和高级选项
config.image_previewText = ' ';//设置图片预览说明为空
//上传图片窗口用到的接口
config.filebrowserImageUploadUrl = "http://192.168.12.160:8090/gdt_information/messageFeedBack/uploadImgEdit";
/*config.filebrowserUploadUrl = "http://192.168.12.160:8090/gdt_information/messageFeedBack/uploadImgEdit"; // 使上传图片弹窗出现对应的“上传”tab标签
config.removeDialogTabs = 'image:advanced;link:advanced'; //粘贴图片时用得到
config.extraPlugins = 'uploadimage';
config.uploadUrl = "http://192.168.12.160:8090/gdt_information/messageFeedBack/uploadImgEdit";*/
这样就能实现图片的上传啦,
效果图如下:

在项目中发现,ckeditor的setData('1111111')方法不好用,老是设置不上数据,于是我自己也是百度了各种资料都不大好使,后来用dom添加的方式给实现了,
我是这样写的
this.$http
.get(
`${global.postUrl}/gdt_information/newsManage/queryNewsById?newsId=${this.newsId}`
)
.then(res => {
this.editForm = res.data.data;
this.editor.setData(this.editForm.newsContent);
let body = (document.getElementById('editor-textarea').getElementsByTagName('iframe')[0]).contentDocument.getElementsByTagName('body');
console.log(body);
setTimeout(() => {
if(body.length ==1){
console.log(body[0]);
body[0].innerHTML = this.editForm.newsContent;
}
},500); })
.catch(error => {
console.log(error);
});
在textarea的外层声明了一个div
,
也不知道还有没有更好的解决办法,希望有更好办法的小伙伴多多分享!!!
ckeditor5富文本编辑器在vue中的使用的更多相关文章
- php 删除富文本编辑器保存内容中的其他代码(保留中文)
$str = '<p><p style="ve:"">测试筛选文本域内的中文 </p><p sty;"> ...
- vue集成百度UEditor富文本编辑器
在前端开发的项目中.难免会遇到需要在页面上集成一个富文本编辑器.那么.如果你有这个需求.希望可以帮助到你 vue是前端开发者所追捧的框架,简单易上手,但是基于vue的富文本编辑器大多数太过于精简.于是 ...
- Vue CLI 3+tinymce 5富文本编辑器整合
基于Vue CLI 3脚手架搭建的项目整合tinymce 5富文本编辑器,vue cli 2版本及tinymce 4版本参考:https://blog.csdn.net/liub37/article/ ...
- django的admin或者应用中使用KindEditor富文本编辑器
由于django后台管理没有富文本编辑器,看着好丑,展示出来的页面不美观,无法做到所见即所得的编辑方式,所以我们需要引入第三方富文本编辑器. 之前找了好多文档已经博客才把这个功能做出来,有些博客虽然写 ...
- 在java项目中加入百度富文本编辑器
富文本编辑器在项目中很常见,他可以将文本,图片等信息存入数据库,在编辑一些图文混排的信息的时候很有用,比如商城项目的商品详情页,包含很多带有样式的文字和图片. 此前一直使用的百度的富文本编辑器uedi ...
- django项目中使用KindEditor富文本编辑器。
先从官网下载插件,放在static文件下 前端引入 <script type="text/javascript" src="/static/back/kindedi ...
- django项目中使用KindEditor富文本编辑器
先从官网下载插件,放在static文件下 前端引入 <script type="text/javascript" src="/static/back/kindedi ...
- 前端vue-TinyMCE富文本编辑器表情插件报错解决
最近项目中需要使用文本编辑器,比较了下最终选择了TinyMCE这款富文本编辑器.我安装的是TinyMCE v5但是在使用表情插件的时候,表情一直都出不来,报错信息如下: Uncaught Syntax ...
- 如何对富文本编辑器(FCK Html Editor)的工具栏进行扩展?
我们在项目开发过程中,会经常使用到富文本编辑器.GeneXus内置的富文本编辑器FCK Html Editor使用起来非常方便,只要将页面变量的控件类型(Control Type)选择为FCK Htm ...
随机推荐
- 88. Merge Sorted Array(从后向前复制)
Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array. Note:Yo ...
- XVII Open Cup named after E.V. Pankratiev Stage 14, Grand Prix of Tatarstan, Sunday, April 2, 2017 Problem D. Clones and Treasures
题目:Problem D. Clones and TreasuresInput file: standard inputOutput file: standard outputTime limit: ...
- Winter-1-A A + B 解题报告及测试数据
Time Limit:1000MS Memory Limit:32768KB Description Calculate A + B. Input Each line will contain two ...
- 【android】开发笔记系列UI篇
弹出View添加阴影效果 系统自带就有,在android studio上直接写入背景颜色 android:background="@android:drawable/dialog_holo_ ...
- 【二分+SPFA】修建道路(road)
(四五年以前的老草稿,作为强迫症还是发布出来吧) 修建道路(road.pas/c/cpp) [问题描述] NOIP2012的参赛者LG异想天开打算修建一条磁悬浮列车的通道连接现代OI王国的首都(编号为 ...
- Python3.x:如何识别图片上的文字
Python3.x:如何识别图片上的文字 安装pytesseract库,必须先安装其依赖的PIL及tesseract-ocr,其中PIL为图像处理库,而后面的tesseract-ocr则为google ...
- clientWidth offsetWidth scrollWidth
网页可见区域宽: document.body.clientWidth;网页可见区域高: document.body.clientHeight;网页可见区域宽: document.body.offset ...
- 20145240《网络对抗》Web安全基础实践
Web安全基础实践 实验后回答问题 (1)SQL注入攻击原理,如何防御 原理:SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语 ...
- hadoop2对应的eclipse插件使用
1. eclipse插件安装步骤: a).把插件复制到eclipse安装目录plugins文件夹下 b).打开eclipse的Window---Preference---Hadoop M/R---指向 ...
- pt-table-checksum校验mysql主从数据一致性
主从数据的一致性校验是个头疼的问题,偶尔被业务投诉主从数据不一致,或者几个从库之间的数据不一致,这会令人沮丧.通常我们仅有一种办法,热备主库,然后替换掉所有的从库.这不仅代价非常大,而且类似治标不治本 ...