程序与技术分享:CKEditor与CKFinder使用

简介: 程序与技术分享:CKEditor与CKFinder使用

目录


CKEditor介绍使用CKFinder介绍使用


正文


回到顶部CKEditor


介绍


CKEditor官网


最新的是CKEditor5


是一个具有模块化体系结构的现代JavaScript富文本编辑器。


用ES6编写,具有MVC架构、自定义数据模型、虚拟DOM。


响应性图像和媒体嵌入(视频、推文)。


自定义输出格式:HTML和降价支持。


通过自动格式化和协作提高生产效率。


可扩展和定制的设计。


使用


1. 下载CKEditor5库


官方教程有CDN,npm, Zip download三种获取方式,但这三种方式获取的都是打包精简之后的版本,有一些文本编辑特性并没有,如对齐方式、字体大小等。


官网下载 选默认的经典版就好


如要更灵活的根据自己的需求添加或删减编辑器的特性,建议从CKEditor5官方Github下载。CKEditor5有多个版本,我使用的是从github下载的ckeditor5-build-classic版本。


2、入门


参考:经典版文档


Html引入:(在HTML页面中添加CKEditor应替换的元素:)


[/span>div id="editor"

js引入:(下载的CKEditor库文件夹 放在wwwroot目录下)


创建Editor


ClassicEditor


.create( document.querySelector( '#editor' ) )


.catch( error => {


console.error( error );


} );


即可显示出Editor。


3、手动提交数据


参考:Getting and saving data


CKEditor 5允许您以各种方式从服务器检索数据并将其保存到服务器。


手动检索数据


当你:


使用Ajax请求,而不是与HTML表单的经典集成,


实现一个单页应用程序,


使用与经典编辑器不同的编辑器类型(因此,不能使用前面的方法),


可以使用editor.getData() 方法从编辑器中检索数据。


为此,您需要存储对编辑器的引用,因为与CKEditor 4不同,没有全局CKEditor.instances属性。您可以通过多种方式执行此操作,例如,将编辑器分配给then()回调函数外部定义的变量:


let editor;


ClassicEditor


.create( document.querySelector( '#editor' ) )


.then( newEditor => {


editor = newEditor;


} )


.catch( error => {


console.error( error );


} );


// Assuming there is a Submit in your application.


document.querySelector( '#submit' ).addEventListener( 'click', () => {


const editorData = editor.getData();


// ...


} );


获取到数据后 可以append到FormData中


FormData 对象的使用


4、上传图片


请看下面的CKFinder


回到顶部CKFinder


介绍


CKFinder 可以上传你喜欢的图片,与CKEditor的紧密集成使您能够:


拖放图像。


将剪贴板中的图像直接粘贴到编辑器中。


自动上载Word文档中的图像。


一次上载多个图像。


CKFinder是一个高级文件管理器,支持多文件上传。使用它来:


将文件分组到文件夹和子文件夹中。


在文件夹之间移动或复制文件。


过滤文件以轻松找到所需内容。


随时删除不需要的文件。


官网下载


使用


1、与CKEditor5集成


CKEditor 5和CKFinder之间的集成基于专用插件,默认情况下,该插件包含在所有CKEditor 5版本中并启用。


文章:CKFinder 文件管理集成


此功能允许您将图像以及指向文件的链接 插入到富文本编辑器内容中。它是CKEDITOR5 WYSIWYG编辑器和CKFinder文件管理器和上传器之间的桥梁。CKFinder是一个商业应用程序,其设计考虑了CKEditor兼容性。目前,PHP、ASP.NET和Java的版本为3.x,ASP和ColdFusion的版本为2.x。


此功能可通过两种不同的方式在富文本编辑器中使用:【都需要服务器接收图片,以下的Base64 Upload Adapter则是将图片作为字符串嵌入,不需要服务器接收图片】


仅作为服务器端连接器(演示)。在这种情况下,拖放或粘贴到编辑器中的图像将上载到 服务器上运行的CKFinder服务器端连接器。


作为服务器端和客户端文件管理器的集成(演示)。直接拖放并粘贴到编辑器中的图像 将上载到服务器(与第一个选项相同)。


但还有更多更酷的功能可用,例如:


使用完整的用户界面上传,


一次上载多个文件,


浏览以前上传的图片,


编辑图像(裁剪、调整大小等),


组织或删除图像。


请访问CKFinder文件管理器网站,以了解有关可在项目中使用的功能的更多信息。


Demo


仅图片上传


完全集成(包括图片和其他文件【以链接的形式提供】)


配置


配置


该功能可通过使用config.ckfinder对象进行配置。


仅图片上传


借助CKFinder上载适配器,此功能可以自动将图像上载到服务器(例如,当图像被放入内容中时)。它只需要正确的config.ckfinder.uploadUrl路径。


假设CKFinder PHP服务器端连接器安装(可用)在使用以下快速上载命令URL启用图像上载:


完全集成


2、插件


Base64 Upload Adapter


Base64图像上载适配器插件将插入富格文本编辑器的图像转换为编辑器输出中的Base64编码字符串。


这种图像上传不需要任何服务器端处理—图像与其余文本一起存储,并由web浏览器显示,无需额外请求。另一方面,这种方法可能会使用很长的数据字符串使数据库膨胀,从理论上讲,这可能会对性能产生负面影响。


安装


Installing plugins


CKEditor 5插件通过npm包分发,并以模块化方式实现,这意味着单个插件可能由多个JavaScript文件组成。


在两种最常见的情况下向编辑器添加插件:


When you use an editor build,


When you build your editor from source.


如果您正在寻找一种简单的方法来创建CKEditor 5的自定义版本,而不需要安装任何东西,请查看联机生成器,它允许您通过简单直观的UI轻松创建一个带有自定义插件集的版本【这种方式最简单】


方式1、联机生成器


需要去掉CKFinder Upload Adapter 才能添加Base64 Upload Adapter插件


下一步下一步,然后就可以下载 安装好插件的CKEditor。


我生成的 带Base64 Upload Adapter插件 的CKEditor5 提取码:qwer


使用,可以参考 里面的 ckeditor5\sample\index.html


以下是我在项目中使用的


@{


Layout = null;


}


@model NewsPublish.Model.Response.ResponseModel


<!DOCTYPE HTML

[/span>html

[/span>head

[/span>meta charset="utf-8"

[/span>meta name="renderer" content="webkit|ie-comp|ie-stand"

[/span>meta http-equiv="X-UA-Compatible" content="IE=edge"

[/span>meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" />


[/span>meta http-equiv="Cache-Control" content="no-siteapp" />



[/span>link type="text/css" rel="stylesheet" href="/admin/css/H-ui.css" />


[/span>link type="text/css" rel="stylesheet" href="/admin/css/H-ui.admin.css" />


[/span>link type="text/css" rel="stylesheet" href="/admin/font/font-awesome.min.css" />



[/span>title


[/span>body

[/span>div class="pd-20"

[/span>div class="Huiform"

[/span>form method="post" enctype="multipart/form-data" id="addForm"

[/span>table class="table table-bg"

[/span>tbody

[/span>tr

[/span>th Width</span>="100" class="text-r"span class="c-red"

[/span>td

@ 表单验证: datatype="2-16" 检测是否为2到16位任意字符;@


[/span>input type="text" style="width:300px" class="input-text" value="" placeholder="" id="Title" name="Title" nullmsg="新闻标题不能为空"



//代码效果参考:http://www.lyjsj.net.cn/wz/art_24187.html

[/span>tr

[/span>th class="text-r"span class="c-red"<span style="color: rgba(0, 0, 255, 1)"]

[/span>td

[/span>select class="select" id="NewsClassifyId" name="NewsClassifyId"

@if (Model.Code == 200)


{


@foreach (var classify in Model.Data)


{


[/span>option value="@classify.Id"

}


}





[/span>tr

[/span>th class="text-r"

[/span>tdinput type="file" class="img" name="img" multiple datatype="2-120" nullmsg="新闻图片不能为空"


[/span>tr

[/span>th class="text-r"

@[/span>tdtextarea class="input-text" name="Contents" id="Contents" style="height:400px;width:350px;"

[/span>tdtextarea id="editor" name="editorContent" rows="30"


[/span>tr

[/span>th

[/span>tdbutton class="btn btn-success radius" type="button" onclick="add()"i class="icon-ok"







[/span>script type="text/javascript" src="/admin/js/jquery.min.js"

[/span>script type="text/javascript" src="/admin/js/Validform_v5.3.2_min.js"

[/span>script type="text/javascript" src="/admin/js/H-ui.js"

[/span>script type="text/javascript" src="/admin/js/H-ui.admin.js"

[/span>script type="text/javascript" src="~/admin/js/ckeditor5/build/ckeditor.js"

相关文章
|
3天前
技术笔记:tinyMCE使用详解
技术笔记:tinyMCE使用详解
|
前端开发
css及移动端web笔记 | 青训营笔记
css及移动端web笔记 | 青训营笔记
196 0
|
JavaScript 前端开发 Java
【JavaWeb】之富文本编辑器
【JavaWeb】之富文本编辑器
519 0
【JavaWeb】之富文本编辑器
|
Java 应用服务中间件 API
富文本编辑器Ueditor实战(一)
本文简单说明如何在tomcat中部署ueditor,并举例介绍了他的api以及相关工具栏,用户可以根据需要进行调整。
421 0
富文本编辑器Ueditor实战(一)
kindeditor富文本编辑器插件 如何实现将本地的图片复制粘贴
目前的需求是 将桌面上的一张图片,进行复制后,可以粘贴到富文本编辑器里面,借用了大佬的这个方法,但是ie浏览器,粘贴图片的时候没办法触发这个paste方法 不知道是因为啥?求大佬帮助
|
JavaScript .NET 开发框架
KindEditor 在线编辑器
地址 http://www.kindsoft.net/index.php 调用 下载KindEditor最新版本。打开下载页面 解压zip文件,将所有文件上传到您的网站程序目录下。例如:http://您的域名/editor/ 要显示编辑器的位置添加TEXTAREA输入框。
996 0
|
Web App开发 Linux 前端开发
|
PHP
CI框架中集成CKEditor编辑器的教程
CKEditor是在很多开发过程中都会用到的一个富文本编辑器,那么如何在CI框架中使用它呢?这里介绍了在CI下使用CKEditor的方法,版本比较低,是在CI 1.7.3下使用fckeditor 2.6.6。
1275 0

相关实验场景

更多