全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

CKEditor自定义按钮插入服务端图片

CKEditor 富文本编辑器很好用,功能很强大,在加上支持服务端图片上传的CKFinder更是方便,

最近在使用CKFinder的时候发现存在很多问题,比如上传图片的时候,图片不能按时间降序排列,另外CKFinder是也是收费的,所以自己想实现一个简单的类似CKFinder的功能,

本节只讲在CKEditor实现服务器图片的插入插件实现方法。

CKEditor版本是 ## CKEditor 4.4.4

第一、定义插件

1.在ckeditor\plugins文件夹下,新建serverimg文件夹,

2.在serverimg下新建plugin.js 文件,

CKEDITOR.plugins.add(
 "serverimg",
 {
 requires: ["dialog"],
 lang: ["en"],
 init: function (editor) {
 editor.addCommand("serverimg", new CKEDITOR.dialogCommand("serverimg"));
 editor.ui.addButton(
 "serverimg",
 {
 label: "插入服务端图片",
 command: "serverimg",
 icon: this.path + "images/pic.png",
 toolbar: 'insert'
 });
 CKEDITOR.dialog.add("serverimg", this.path + "dialogs/code.js");
 }
 }
);

3.在serverimg下新建image,里面存放图标使用的图片pic.png 

第二、定义插件中的对话框内容

1.在serverimg中新建dialogs文件夹,

2.在dialogs文件内,分别创建code.js (用于执行弹出对话框执行的js代码)和PicPreview.html(用于浏览服务器图片)

3.code.js 代码如下

CKEDITOR.dialog.add(
 "serverimg",
 function (editor) {
 var timestamp = Math.round(new Date().getTime() / 1000);
 var ckeditorPage = '../../ImgMgr/ImgBrowser.aspx?from=ckeditor&timestamp=' + timestamp;
 return {
 title: "插入代码",
 minWidth: 800,
 minHeight: 600,
 contents:
 [
 {
  id: "tab1",
  label: "",
  title: "",
  expand: true,
  padding: 0,
  elements:
  [
  {
  type: "html",
  html: "<iframe id='img_browser'name='img_browser' src='" + ckeditorPage + "'></iframe>",
  style: "width:100%;height:600px;padding:0;"// style='width:800px;height:600px'
  }
  ]
 }
 ],
 onOk: function () { 
 
 //插入富文本编辑器内容 window.frames["img_browser"].document.getElementById("hf_imgsrc");//
 var hf = document.getElementById('img_browser').contentWindow.document.getElementById("hf_imgsrc");
 if (hf != null) {
  var imgSrc = hf.value;  
  editor.insertHtml("<img src='" + imgSrc + "' />"); //将select插入编辑器
 
 } else {
  alert("hf is null");
 }
 
 },
 //onHide: function () { document.getElementById('img_browser').contentDocument.location.reload(); },
 //resizable: CKEDITOR.DIALOG_RESIZE_HEIGHT
 };
 }
);

4.说明,由于我在弹出的对话框中插入的是一个iframe,src正好是我自己做的一个浏览服务器图片的页面,当选中图片后,点击对话框中的确定按钮,即可获取图片路径,

最终包装成img ,插入到富文本编辑器里面 ,当然你可以做的更好,允许图片设置宽度和高度,这里就不在讲了。 

第三、配置插件

    上面的插件开发完成后,页面上并不会显示我们开发的插件,还需要配置下config.js,找到ckeditor文件下的config.js 打开,在配置里面增加config.extraPlugins = 'serverimg';

第四、最终效果

 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# CKEditor  # 按钮  # 插入图片  # FCK编辑器(FCKEditor)添加新按钮和功能的修改方法  # FCKeditor添加自定义按钮的方法  # FCKeditor添加自定义按钮  # 编辑器  # 弹出  # 对话框  # 服务端  # 的是  # 我在  # 你可以  # 对话框中  # 还需要  # 讲了  # 上传图片  # 大家多多  # 本节  # 很好用  # 图片上传  # 很强大  # 只讲  # 完成后  # 降序  # ui 


相关文章: 沈阳个人网站制作公司,哪个网站能考到沈阳事业编招聘的信息?  桂林网站制作公司有哪些,桂林马拉松怎么报名?  利用JavaScript实现拖拽改变元素大小  武汉外贸网站制作公司,现在武汉外贸前景怎么样啊?  Android滚轮选择时间控件使用详解  建站之星安装路径如何正确选择及配置?  合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?  企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?  网站制作网站,深圳做网站哪家比较好?  如何获取免费开源的自助建站系统源码?  网站制作的软件有哪些,制作微信公众号除了秀米还有哪些比较好用的平台?  网站制作壁纸教程视频,电脑壁纸网站?  网站建设制作、微信公众号,公明人民医院怎么在网上预约?  javascript基本数据类型及类型检测常用方法小结  如何在IIS中新建站点并配置端口与IP地址?  网站网页制作电话怎么打,怎样安装和使用钉钉软件免费打电话?  Android自定义控件实现温度旋转按钮效果  湖州网站制作公司有哪些,浙江中蓝新能源公司官网?  如何快速配置高效服务器建站软件?  大同网页,大同瑞慈医院官网?  学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?  建站之星手机一键生成:多端自适应+小程序开发快速建站指南  如何在IIS中新建站点并解决端口绑定冲突?  高端建站三要素:定制模板、企业官网与响应式设计优化  建站之星安装后如何自定义网站颜色与字体?  关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)  在线制作视频的网站有哪些,电脑如何制作视频短片?  如何选择CMS系统实现快速建站与SEO优化?  C#如何序列化对象为XML XmlSerializer用法  美食网站链接制作教程视频,哪个教做美食的网站比较专业点?  如何选择网络建站服务器?高效建站必看指南  C++中引用和指针有什么区别?(代码说明)  css网站制作参考文献有哪些,易聊怎么注册?  如何在局域网内绑定自建网站域名?  建站之星后台管理系统如何操作?  官网自助建站系统:SEO优化+多语言支持,快速搭建专业网站  如何通过山东自助建站平台快速注册域名?  如何配置IIS站点权限与局域网访问?  如何在腾讯云服务器上快速搭建个人网站?  如何在万网自助建站中设置域名及备案?  建站主机默认首页配置指南:核心功能与访问路径优化  建站上传速度慢?如何优化加速网站加载效率?  制作网站怎么制作,*游戏网站怎么搭建?  如何用花生壳三步快速搭建专属网站?  如何快速上传自定义模板至建站之星?  如何快速生成凡客建站的专业级图册?  如何在VPS电脑上快速搭建网站?  无锡营销型网站制作公司,无锡网选车牌流程?  如何彻底卸载建站之星软件?  Python多线程使用规范_线程安全解析【教程】 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。