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 ...
随机推荐
- 2.MySQL简介
MySQL是一种DBMS,即它是一种数据库软件. 1.连接 为了连接到MyAQL,需要一下信息: ➡️主机名(计算机名)---如果连接到本地MySQL服务器,为localhost ➡️duan ...
- spl_autoload_register(转载 http://blog.csdn.net/panpan639944806/article/details/23192267)
在了解这个函数之前先来看另一个函数:__autoload. 一.__autoload 这是一个自动加载函数,在PHP5中,当我们实例化一个未定义的类时,就会触发此函数.看下面例子: printit.c ...
- appium服务关键字
关键字 描述 实例 automationName 你想使用的自动化测试引擎 Appium (默认) 或 Selendroid platformName 你要测试的手机操作系统 iOS, Android ...
- javascript 理解对象--- 属性类型
ECMA-262 把对象定义为:无序属性的集合,其属性可以包含基本值.对象或者函数: var Person = { name:"wsc", age :"25", ...
- :Linux 系统日志管理 日志转储
Linux日志服务器设置 使用“@IP:端口”或“@@IP:端口”的格式可以把日志发送到远程主机上. 假设需要管理几十台服务器,每天的重要工作就是查看这些服务器的日志,可是每台服务器单独登录,并且查看 ...
- WeX5基础
最近在研究微信app开发,使用的是WeX5,在这里把一些基础知识点记录下来,忘记了可以翻阅查看. 一:开发后端服务 1.建立数据源:窗口--首选项--studio配置--数据源--增加--数据源类型选 ...
- Python面试题之Python中__repr__和__str__区别
看下面的例子就明白了 class Test(object): def __init__(self, value='hello, world!'): self.data = value >> ...
- 写写Web API基础
前两天突然心血来潮,对WEB Api 来了复习兴趣,虽然有很长时间没用了,现在有点迷湖.呀的!在VS2013的MVC项目(基于VS2012/MVC4的,如果是VS2013下的MVc5时,创建时勾上We ...
- SpringBoot 简单集成ActiveMQ
ActiveMQ安装配置步骤见:https://www.cnblogs.com/vincenshen/p/10635362.html 第一步,pom.xml引入ActiveMQ依赖 <depen ...
- Linux系统巡检项目
系统检测 1.检查系统类型 2.检查发行版本 3.检查内核版本 4.检查主机名称 5.检查是否启用SElinux 6.检测默认的语言/编码 7.检测uptime 8.检测最后启动时间等 CPU检查 1 ...