ckeditor是一款功能很强大的富文本编辑的工具,给我们提供了绝大多数功能,满足我们日常开发所用,但由于特殊情况,可能会需要修改ckeditor的插件。ckeditor提供了给我们很方便扩展插件的接口。

最经由于项目的需要,需要重写ckeditor的上传图片的功能,以下是自定义图片上传功能的部分代码:
1、在ckeditor/plugins/目录下新建editorupload目录,用来存放自定义插件;在该目录下新建目录images用来存放自定以图片,在images目录下放入插件图片image.png.
2、在editorupload目录下新建plugin.js:
(function () {
var a = {
exec: function (editor) {
//调用jsp中的函数弹出上传框,
var url = '../view/fileupload/upload.jsp';
openDialog({ //openDialog打开一个新窗口
title: '插入图片',
url: url,
height: 600,
width: 900,
callback:function(){
}
});
}
},
b = 'editorupload';
CKEDITOR.plugins.add('editorupload', {
init: function (editor) {
editor.addCommand(b, a);
editor.ui.addButton('editorupload', {
label: '添加图片', //鼠标悬停在插件上时显示的名字
icon: 'plugins/editorupload/images/image.png', //自定义图标的路径
command: b
});
}
});
})();
在上面代码中,新建了一个upload.jsp页面用来上传图片,使用了openDialog弹出一个新的窗口,设置了弹出框的高度和宽度。
CKEDITOR.plugins.add将自定义的editorupload加入到ckeditor中。
下面是部分upload.jsp页面代码:
<div id="mainContent">
</div>
<div class=" box">
<table class=" m-table">
<colgroup>
<col width="20%"/>
<col width="80%"/>
</colgroup>
<tr>
<td style="vertical-align:top;"><label class="module-name">图片说明</label></td>
<td>
<ul>
<li>1、《PC首页轮播图片》长宽为666×250显示效果最好;《APP首页轮播图片》长宽为422×262显示效果最好;</li>
<li>3、图片提交才会在首页生效;</li>
</ul>
</td>
</tr>
</table>
</div>
<div id="Pictures" class="detailWraper nopadding" style="display: none;height: auto;">
<input id="hidPicturesStatus" type="hidden" value="0"/>
<input id="hidCurrPictures" type="hidden" value=''/>
<input id="hidDictSuggestion" type="hidden" value=''/>
<table>
<tr>
<td>
<div id="fileQueue"></div>
<div id="picWrapper"></div>
<a id="fake-dlg-bigPic" href="javascript:void(0)" style="display: none;"></a>
<div id="dlg-bigPic" class="popImg" style="display: none;">
<a class="leftBtn" href="javascript:void(0)"></a>
<a class="rightBtn" href="javascript:void(0)"></a>
<a class="closeImgBtn" href="javascript:void(0)"></a>
<div class="imgList">
<ul></ul>
</div>
</div>
<div class="validation-summary-valid">
<ul>
<li style="display: none"></li>
</ul>
</div>
</td>
</tr>
</table>
</div>
<div>
<button id="fileUpload">批量上传</button>
<button id="submit" class="btn btn-primary" style="vertical-align: top;line-height:23px;width:112px;height: 35px;">提交照片
</button>
</div>
</div>
upload.jps页面部分的js代码:
//提交照片
photoTaskDetail.submit = function () {
var pictures = window.picManager._getPictures();
if (pictures.length < 1) {
alert('请至少上传1张图片');
return false;
}
for (var i in pictures) {
var imgPath = "<img src='" + staticFileRoot + pictures[i].URL + "'/>";
var element = window.parent.CKEDITOR.dom.element.createFromHtml(imgPath);
window.parent.CKEDITOR.instances.editorContent.insertElement(element);
}
parent.closeDialog(false);
}
上面代码中,可以上传多张照片,分别将照片放入到ckeditor中。
配置ckeditor的config.js:
config.extraPlugins += (config.extraPlugins ? ',editorupload' : 'editorupload');
CKEDITOR.editorConfig = function( config ) {
config.font_names= '宋体/宋体;黑体/黑体;仿宋/仿宋_GB2312;楷体/楷体_GB2312;隶书/隶书;幼圆/幼圆;微软雅黑/微软雅黑;'+ config.font_names;
config.language = 'zh-cn';
config.extraPlugins += (config.extraPlugins ? ',lineheight' : 'lineheight');
config.extraPlugins += (config.extraPlugins ? ',editorupload' : 'editorupload');
CKEDITOR.config.lineheight_sizes = CKEDITOR.config.lineheight_sizes + '30px';
config.height = 650;
config.toolbarCanCollapse = true;
config.uiColor = '#90B8E9';
config.toolbar = 'Full';
config.toolbar_Full = [
{ name: 'document', items: [ 'Source','-','Save','NewPage','DocProps','Preview','Print','-','Templates' ] },
{ name: 'clipboard', items: [ 'Cut','Copy','Paste','PasteText','PasteFromWord','-','Undo','Redo' ] },
{ name: 'links', items:['Link','Unlink']},
{ name: 'insert', items:['HorizontalRule','Table','Image'] },
'/',
{ name: 'basicstyles', items: [ 'Bold','Underline','Strike','Subscript','Superscript','-','RemoveFormat'] },
{ name: 'paragraph', items: [ 'list', 'indent', 'blocks', 'align', 'bidi' ] },
{ name: 'styles',items: ['lineheight','Format','Font','FontSize']},
{ name: 'colors',items: ['TextColor', 'BGColor']},
{ name: 'tools', items : [ 'Maximize','editorupload'] }
];
将editorupload插件加入到ckeditor中。
以下是实现的部分截图:
实现总结:在自定义插件过程中,必须把原插件的图片插入的功能给打开,负责上传的图片不会被放入到ckeditor中,图片地址会被自动的过滤掉。这可能是ckeditor版本的bug导致。有解决方案的欢迎指导。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# ckeditor
# 自定义插件
# CKEditor扩展插件:自动排版功能autoformat插件实现方法详解
# FCKeditor 插件开发 示例(详细版本)
# CKEditor 附插入代码的插件
# 添加FCKeditor插件需要注意的地方
# ckeditor插件开发简单实例
# fckeditor 插件实例 制作步骤
# autogrow 让FCKeditor高度随内容增加的插件
# CKEditor中加入syntaxhighlighter代码高亮插件
# FCKeditor 和 SyntaxHighlighter 代码高亮插件的整合
# ckeditor一键排版功能实现方法分析
# 自定义
# 上传
# 弹出
# 首页
# 目录下
# 给我们
# 微软
# 上传图片
# 长宽
# 宋体
# 显示效果
# 鼠标
# 会在
# 重写
# 在上面
# 这可
# 很方便
# 上时
# 大家多多
# 自定
相关文章:
如何自定义建站之星模板颜色并下载新样式?
高性价比服务器租赁——企业级配置与24小时运维服务
建站之星导航配置指南:自助建站与SEO优化全解析
浙江网站制作公司有哪些,浙江栢塑信息技术有限公司定制网站做的怎么样?
香港服务器如何优化才能显著提升网站加载速度?
桂林网站制作公司有哪些,桂林马拉松怎么报名?
做企业网站制作流程,企业网站制作基本流程有哪些?
建站之星24小时客服电话如何获取?
北京网站制作的公司有哪些,北京白云观官方网站?
专业制作网站的公司哪家好,建立一个公司网站的费用.有哪些部分,分别要多少钱?
电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?
建设网站制作价格,怎样建立自己的公司网站?
购物网站制作公司有哪些,哪个购物网站比较好?
网站制作免费,什么网站能看正片电影?
如何在Golang中使用encoding/gob序列化对象_存储和传输数据
浅析上传头像示例及其注意事项
建站之星云端配置指南:模板选择与SEO优化一键生成
如何选择高效稳定的ISP建站解决方案?
常州自助建站费用包含哪些项目?
如何规划企业建站流程的关键步骤?
如何在沈阳梯子盘古建站优化SEO排名与功能模块?
潮流网站制作头像软件下载,适合母子的网名有哪些?
微信推文制作网站有哪些,怎么做微信推文,急?
制作门户网站的参考文献在哪,小说网站怎么建立?
如何通过二级域名建站提升品牌影响力?
如何处理“XML格式不正确”错误 常见XML well-formed问题解决方法
网站专业制作公司有哪些,做一个公司网站要多少钱?
北京营销型网站制作公司,可以用python做一个营销推广网站吗?
小型网站建站如何选择虚拟主机?
如何快速查询网址的建站时间与历史轨迹?
上海网站制作网站建设公司,建筑电工证网上查询系统入口?
合肥做个网站多少钱,合肥本地有没有比较靠谱的交友平台?
html制作网站的步骤有哪些,iapp如何添加网页?
广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?
建站DNS解析失败?如何正确配置域名服务器?
高防服务器如何保障网站安全无虞?
网站规划与制作是什么,电子商务网站系统规划的内容及步骤是什么?
西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?
建站之星伪静态规则如何设置?
建站之星上传入口如何快速找到?
深圳网站制作案例,网页的相关名词有哪些?
建站之星展会模版如何一键下载生成?
哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?
网站制作培训多少钱一个月,网站优化seo培训课程有哪些?
如何配置FTP站点权限与安全设置?
如何在云指建站中生成FTP站点?
沈阳制作网站公司排名,沈阳装饰协会官方网站?
怎么用手机制作网站链接,dw怎么把手机适应页面变成网页?
网站制作的软件有哪些,制作微信公众号除了秀米还有哪些比较好用的平台?
如何在云主机上快速搭建多站点网站?
*请认真填写需求信息,我们会在24小时内与您取得联系。