美文网首页
Vue整合CKeditor配置、初始化、虚拟dom无法通过id获

Vue整合CKeditor配置、初始化、虚拟dom无法通过id获

作者: 有料美拓 | 来源:发表于2021-11-20 08:04 被阅读0次

1.npm install --save我是实用的npm来安装的ckeditor,然后从本地保存的目录中复制了一个出来用的。
2.引用非常简单。<script src="/res/lib/ckeditor/ckeditor.js"></script>就全局可用CKEDITOR这个对象了。
3.在vue组件中使用的时候可能会存在一个虚拟dom无法通过id获取的问题。
这里如果能直接将CKEDITOR做replace上去的,那么直接就成功了。如果不能,比如我用的是element ui的drawer就不行。可以使用.nextTick以后再来配合id获取组件的原生dom。 比如我在使用drawer的自组件的show函数里面,这个show函数是供父组件调用的函数,在nextTick以后可以拿到原生的dom组件,这样就可以顺利的render上去了。用ref应该也能拿到原生组件。可以试试看。
show(row) {
if (row) {
const rowStr = JSON.stringify(row);
this.currentRow = JSON.parse(rowStr);
this.loadFiles();
} else {
this.initRow();
this.fileList = [];
}
this.isShowEdit = true;
this.nextTick(() => {(function () {
// 这里写jquery代码
CKEDITOR.replace("editor")
})
})
},

4.CKeditor上传图片与视频的方法
CKeditor的配置文件是config.js
我们补充文件上传的功能
//文件上传
config.filebrowserImageUploadUrl = 'http://127.0.0.1:7201/F3323/ajax5';
//上传音视频插件
config.extraPlugins = 'html5video';
config.filebrowserHtml5videoUploadUrl = "http://127.0.0.1:7201/F3323/ajax5";

这里需要注意一个html5video的一个插件,需要下载一下,放进ckeditor的插件目录,默认这个插件实用的语言里面没有中文,可以编辑一下插件的源码,在配置语言的地方加上lang配置处加上zh-cn,即可显示中文。
这样配置过后,ckeditor的图片和视频上传都搞定。接下来是服务端的问题。
html5video的中文语言包里面少了一个loop项目的配置,需要额外进行一下增加
CKEDITOR.plugins.setLang( 'html5video', 'zh-cn', {
button: '发布HTML5视频',
title: 'HTML5视频',
infoLabel: '视频信息',
allowed: '支持格式: MP4, WebM, Ogv',
urlMissing: '视频url',
videoProperties: '视频属性',
upload: '上传视频',
btnUpload: '上传',
advanced: '高级',
autoplay: '自动播放',
poster:'测试',
loop:'循环播放',
allowdownload: '允许下载',
advisorytitle: '提示语',
yes: '是',
no: '否',
responsive: '自动宽度',
controls: '显示控件'
} );
服务端
@PostMapping("/F3323/ajax5")
public CommonResult ajax5(@RequestParam("upload") MultipartFile file) {
CommonResult result = new CommonResult();
try {
//1.上传文件到指定位置
String destFilePath = System.getProperty("user.dir") + "/res/tmp/";
String destFileName = file.getOriginalFilename();
FileUtil.mkdir(destFilePath);
file.transferTo(new File(destFilePath + destFileName));
result.put("uploaded",1);
result.put("fileName",file.getOriginalFilename());
result.put("url","/res/tmp/"+file.getOriginalFilename());
} catch (Exception ignored) {
}
return result;
}

相关文章

  • Vue整合CKeditor配置、初始化、虚拟dom无法通过id获

    1.npm install --save我是实用的npm来安装的ckeditor,然后从本地保存的目录中复制了一个...

  • vue 虚拟dom

    vnode => dom虚拟 => 真是dom (vue 初始化渲染) 更新节点

  • 【Vue】基础(虚拟DOM & 响应式原理)

    虚拟 DOM Vue 通过建立一个虚拟 DOM 来追踪自己要如何改变真实 DOM 在Vue中定义虚拟节点(VNod...

  • vue render函数

    render 函数 虚拟 DOM Vue 通过建立一个虚拟 DOM对真实 DOM 发生的变化保持追踪 Vue.js...

  • 渲染函数&JSX

    1.基础 render函数提供javascript完全编程能力 2.节点,树以及虚拟DOM 虚拟DOM:vue通过...

  • 学习笔记(十六)Vue.js源码剖析 - 虚拟DOM

    Vue.js源码剖析 - 虚拟DOM 虚拟DOM概念回顾 什么是虚拟DOM? 虚拟DOM(Virtual DOM)...

  • 2019-11-23

    vue虚拟DOM是什么?vue的虚拟DOM的用法 1、为什么需要虚拟DOM 前面我们从零开始写了一个简单的类Vue...

  • Vue—数据

    Vue对象的属性 el :用来为vue实例指定一个id,通过这个id可以和dom进行绑定 data:Vue的实例数...

  • 第十七天

    1.你怎么理解vue中的diff算法? diff算法是虚拟DOM技术的必然产物:通过新旧虚拟DOM作对比(即dif...

  • react生命周期 虚拟dom

    vue和react都使用虚拟dom:通过js构建dom树节点react生命周期:https://zh-hans.r...

网友评论

      本文标题:Vue整合CKeditor配置、初始化、虚拟dom无法通过id获

      本文链接:https://www.haomeiwen.com/subject/rpsytrtx.html