全网整合营销服务商

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

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

ckeditor自定义插件使用方法详解

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一键排版功能实现方法分析  # 自定义  # 上传  # 弹出  # 首页  # 目录下  # 给我们  # 微软  # 上传图片  # 长宽  # 宋体  # 显示效果  # 鼠标  # 会在  # 重写  # 在上面  # 这可  # 很方便  # 上时  # 大家多多  # 自定 


相关文章: 头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?  定制建站价位费用解析与套餐推荐全攻略  网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?  宝塔新建站点报错如何解决?  C++用Dijkstra(迪杰斯特拉)算法求最短路径  建站VPS推荐:2025年高性能服务器配置指南  如何高效配置IIS服务器搭建网站?  nginx修改上传文件大小限制的方法  已有域名和空间如何快速搭建网站?  建站之星后台密码遗忘或太弱?如何重置与强化?  黑客如何通过漏洞一步步攻陷网站服务器?  如何实现建站之星域名转发设置?  香港服务器选型指南:免备案配置与高效建站方案解析  如何快速搭建响应式可视化网站?  如何在万网开始建站?分步指南解析  如何快速启动建站代理加盟业务?  浅谈Javascript中的Label语句  制作网站的网址是什么,请问后缀为.com和.com.cn还有.cn的这三种网站是分别是什么类型的网站?  如何通过虚拟主机快速完成网站搭建?  如何撰写建站申请书?关键要点有哪些?  网站建设制作需要多少钱费用,自己做一个网站要多少钱,模板一般多少钱?  高端建站如何打造兼具美学与转化的品牌官网?  建站主机选虚拟主机还是云服务器更好?  如何在IIS中新建站点并配置端口与IP地址?  c# Task.Yield 的作用是什么 它和Task.Delay(1)有区别吗  c# 服务器GC和工作站GC的区别和设置  Avalonia如何实现跨窗口通信 Avalonia窗口间数据传递  建站org新手必看:2024最新搭建流程与模板选择技巧  手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?  招商网站制作流程,网站招商广告语?  Thinkphp 中 distinct 的用法解析  新网站制作渠道有哪些,跪求一个无线渠道比较强的小说网站,我要发表小说?  厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?  番禺网站制作公司哪家值得合作,番禺图书馆新馆开放了吗?  定制建站策划方案_专业建站与网站建设方案一站式指南  弹幕视频网站制作教程下载,弹幕视频网站是什么意思?  免费制作小说封面的网站有哪些,怎么接网站批量的封面单?  如何快速使用云服务器搭建个人网站?  网站制作企业,网站的banner和导航栏是指什么?  如何挑选最适合建站的高性能VPS主机?  网站制作话术技巧,网站推广做的好怎么话术?  c++如何打印函数堆栈信息_c++ backtrace函数与符号名解析【方法】  如何在阿里云ECS服务器部署织梦CMS网站?  建站之星如何修改网站生成路径?  长春网站建设制作公司,长春的网络公司怎么样主要是能做网站的?  如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?  Android自定义listview布局实现上拉加载下拉刷新功能  如何快速查询网址的建站时间与历史轨迹?  如何用VPS主机快速搭建个人网站?  如何基于PHP生成高效IDC网络公司建站源码? 

您的项目需求

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