博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CKEditor与CKFinder学习--自定义界面及按钮事件捕获
阅读量:5925 次
发布时间:2019-06-19

本文共 3132 字,大约阅读时间需要 10 分钟。

原文地址:  讨厌CSDN的广告,吃香太难看!

 

效果图

界面操作图

原始界面

这里写图片描述

调整后的界面(删除了flush,表单元素等)

这里写图片描述
该界面的皮肤是bootstrap的皮肤

事件操作图

获取界面上保存按钮点击事件效果

这里写图片描述

用js操作ckeditor控制的textarea

这里写图片描述

自定义界面

ckeditor默认使用moono皮肤

如果想更改ckeditor的皮肤,去ckeditor的网站下载相应的皮肤。

皮肤更换

去ckeditor的关网选一个你喜欢的皮肤,然后下载下来。

以bootstrap为例,点击Download进行下载
这里写图片描述
这里写图片描述
根据提示信息,将下载的文件进行解压,并放在项目中ckeditor目录的skins目录下
这里写图片描述
然后配置config.js,使其引用bootstrap的皮肤

config.js

/** * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or http://ckeditor.com/license */CKEDITOR.editorConfig = function( config ) {    // Define changes to default configuration here. For example: // config.language = 'fr'; // config.uiColor = '#AADC6E'; config.skin = 'bootstrapck'; };

如果想使用其他的皮肤,跟上面的操作一样,只需把

config.skin = 'bootstrapck';

换成下载的那个即可

界面选择

ckeditor的samples目录下提供了一个示例,点击TOOLBAR CONFIGURATOR就可以自定义界面了

这里写图片描述

进入界面选择和排序页面

这里写图片描述

定制好自己的界面后,点击右侧的Get toolbar config

这里写图片描述
得到自定义界面的js
这里写图片描述
将其拷贝到config.js中,注意保存自己之前的配置(皮肤,高度等)
这里写图片描述

隐藏按钮

ckeditor与ckfinder整合之后再进行图文混排的时候选择图片时可以浏览服务器上的图片资源

这里写图片描述
用户可以删除,重命名,这也会影响到其他页面对该图片的引用,不安全。
可以将浏览服务器按钮隐藏了。
在选择图片的时候有两处有浏览服务器的按钮
这里写图片描述
这里写图片描述
所以需要修改两处
打开ckeditor/plugins/image/dialogs/下的image.js
这里写图片描述
查找browseServer,找到第一次出现的位置

label:d.lang.common.browseServer,hidden:!0,

修改其为

label:d.lang.common.browseServer,style:"display:none",hidden:!0,

这里写图片描述

第一个浏览服务器按钮就被隐藏了

再搜索image.js,搜索filebrowser

url:d.config.filebrowserImageBrowseLinkUrl},style:"float:right",hidden:!0,

将其改为

url:d.config.filebrowserImageBrowseLinkUrl},style:"float:right;display:none",hidden:!0,

这里写图片描述

这样两个浏览服务器的按钮就被隐藏了,用户只能每次上传图片来进行图文混排。

参考文献

界面元素操作

ckeditor为界面提供了许多按钮,有源代码,保存,新建,打印等等。

有时候我们需要自己操作这些按钮的事件。ckeditor也为我们提供了相应的api
api网址

获取元素

以保存按钮为例

/** * index.jsp的js */// When the CKEDITOR instance is created, fully initialized and ready for interaction. // 当id为content的那个ckeditor被创建,并初始化完成之后CKEDITOR.instances["content"].on("instanceReady", function() { // 保存按钮 this.addCommand("save", { modes : { wysiwyg : 1, source : 1 }, exec : function(editor) { save(); } }); }); }); // 保存方法 function save() { // 获取到editor中的内容 var content = editor.document.getBody().getHtml(); alert(content); }

这里写图片描述

打印按钮的事件

this.addCommand("print", {        modes : {            wysiwyg : 1,            source : 1        },        exec : function(editor) { alert("print button"); } });

操作事件

除了可以获取按钮的事件外,还能获取整个editor的点击,失去焦点等事件。

案例

用户进入编辑页面,ckeditor显示提示信息,当用户点击进行输入的时候提示信息消失,如果用户什么也没有输入,失去焦点时提示信息重新出现,如果用户输入了,不出现提示信息。

效果

这里写图片描述

代码

// 失去焦点this.on('blur', addTips);// 获得焦点 this.on('focus', deleteTips); /* * 点击时清除提示信息 */ function deleteTips() { console.log("focus"); var tips = editor.document.getBody().getText().trim(); //console.log("tips: " + tips); var mytip = "如果想让图片居中,请先选择居中,然后再插入图片!".trim(); //console.log("mytip: " + mytip); //console.log(tips == mytip); if (tips == mytip) { CKEDITOR.instances['content'].setData(''); } } /* * 如果没有输入,失去焦点时给出提示信息 */ function addTips() { console.log("blur"); var tips = editor.document.getBody().getText().trim(); //console.log("tips: " + tips); var mytip = "如果想让图片居中,请先选择居中,然后再插入图片!".trim(); //console.log("mytip: " + mytip); //console.log(tips == mytip); if (tips.length==0) { CKEDITOR.instances['content'].setData(mytip); } }

参考文献

转载于:https://www.cnblogs.com/wuling129/p/8377327.html

你可能感兴趣的文章
chgrp命令
查看>>
Java集合框架GS Collections具体解释
查看>>
洛谷 P2486 BZOJ 2243 [SDOI2011]染色
查看>>
linux 笔记本的温度提示
查看>>
(转)DOTA新版地图6.78发布:大幅改动 增两位新英雄
查看>>
工欲善其事必先利其器SecureCRT+VMware® Workstation_学习笔记
查看>>
文件和目录权限chmod,更改所有者和所属组chown,umask,隐藏权限lsattr/chattr
查看>>
阿里PB级Kubernetes日志平台建设实践
查看>>
怎么把无线由器限
查看>>
Java实现的冒泡排序
查看>>
APP中的第三方“支付”功能该如何测试
查看>>
数值积分中的辛普森方法及其误差估计
查看>>
Web service (一) 原理和项目开发实战
查看>>
跑带宽度多少合适_跑步机选购跑带要多宽,你的身体早就告诉你了
查看>>
[J2MEQ&A]WTK初始化WMAClient报错XXX has no IP address的解释
查看>>
广平县北方计算机第一届PS设计大赛
查看>>
深入理解Java的接口和抽象类
查看>>
fail2ban 帮助postfix 过滤恶意IP
查看>>
Simple Proxy Server (Java)
查看>>
Kafka消费的几种方式--low-level SimpleConsumer
查看>>