这里日历控件用的是开源的My97DatePicker,先看下效果图:

1、点击左侧自定义的日历控件按钮,弹出日历控件对话框。

2、点击确定,日历控件添加的表单设计器中,同时保留日历的控件样式


3、点击ckeditor的预览控件,查看是否可以进行日历的选择。

下面就说一下实现,关于如何在ckeditor中添加自定义控件,可参考《ckeditor_4.4.5 自定义工具栏》一文。

首先将My97DatePicker的js文件添加到插件目录下:

plugin.js的代码如下:

  1. CKEDITOR.plugins.add('datepicker',
  2. {
  3. requires : ['dialog'],
  4. init : function (editor)
  5. {
  6. var pluginName = 'datepicker';
  7. //加载自定义窗口
  8. CKEDITOR.dialog.add('datepicker',this.path + "dialogs/datepicker.js");
  9. //给自定义插件注册一个调用命令
  10. editor.addCommand( pluginName, new CKEDITOR.dialogCommand( 'datepicker' ) );
  11. //注册一个按钮,来调用自定义插件
  12. editor.ui.addButton('DatePicker',
  13. {
  14. //editor.lang.mine是在zh-cn.js中定义的一个中文项,
  15. //这里可以直接写英文字符,不过要想显示中文就得修改zh-cn.js
  16. label : editor.lang.mine,
  17. command : pluginName
  18. });
  19. }
  20. }
  21. );

上述第九行代码中的this.path可获取当前文件所在的路径。

dialogs下的datepicker.js代码如下:

  1. CKEDITOR.dialog.add( 'datepicker', function( editor )
  2. {
  3. return {
  4. title : '日历控件',
  5. minWidth : 300,
  6. minHeight : 150,
  7. contents : [
  8. {
  9. id: 'tab1',
  10. label: '',
  11. title: '',
  12. elements :
  13. [
  14. {
  15. type: 'html',
  16. html:'选择日期:<style type="text/css">
  17. .Wdate{border: #999 1px solid;height: 20px;
  18. background: #fff url('+CKEDITOR.plugins.get("datepicker").path+'/images/datePicker.gif)
  19. no-repeat right;}
  20. </style>
  21. <input type="text" id="d241" onfocus="WdatePicker({dateFmt:\'yyyy-MM-dd HH:mm:ss\'})"
  22. class="Wdate" style="width:150px"/>'
  23. }
  24. ]
  25. }
  26. ],
  27. onOk: function(){
  28.         editor.insertHtml('
  29. <style type="text/css">
  30. .Wdate{border: #999 1px solid;height: 20px;
  31. background: #fff url('+CKEDITOR.plugins.get("datepicker").path+'/images/datePicker.gif)
  32. no-repeat right;}
  33. </style>
  34. <input type="text" id="d241" onfocus="WdatePicker({dateFmt:\'yyyy-MM-dd HH:mm:ss\'})"
  35. class="Wdate" style="width:150px"/>');
  36.     },
  37. };
  38. } );

日历控件的样式需要在上述js文件中自己加上,否则在引用的时候很容易出现引用路径不对导致样式丢失的bug。

转自:http://itxxz.com/a/gaoji/2014/1127/ckeditor_my97DatePicker.html

ckeditor添加日历控件的更多相关文章

  1. TWaver初学实战——如何在TWaver属性表中添加日历控件?

    在日期输入框中添加日历控件,是一种非常流行和实用的做法.临渊羡鱼不如退而写代码,今天就看看在TWaver中是如何实现的.   资源准备   TWaver的在线使用文档中,就有TWaver Proper ...

  2. Birt时间参数添加My97日历控件

    首先,思路: 引用My97.js然后为时间参数的textbox添加onclick事件 1.将My97添加到项目中的webcontent目录下(如图:) 2.添加My97引用 在项目路径下找到该文件\w ...

  3. C# 给Word文档添加内容控件

    C# 给Word文档添加内容控件 在MS Word中,我们可以通过内容控件来向word文档中插入预先定义好的模块,指定模块的内容格式(如图片.日期.列表或格式化的文本等),从而创建一个结构化的word ...

  4. javascript实例学习之六—自定义日历控件

    基于之前上篇博客轻量级jquery,tool.js和base.js.自定义开发的base_datePicker插件,效果类似于jquery_ui的datePicker插件 //基于Base.js以及t ...

  5. 日历控件修改的JS代码

    var bMoveable=true; var _VersionInfo=" " ; //============================================= ...

  6. asp.net Calendar 日历控件用法

    asp.net Calendar 是微软自带的一款日历控件,除了简单显示日期时间外, 还可以绑定一些需要的事件. Calendar_DayRender 事件,是在加载都去时间日期时候的方法,用此方法可 ...

  7. jQuery 日历控件 FullCalendar 初识

    最近有个日程管理的需求,就学习了一下 FullCalendar 控件的一些基本知识,本文不是详细介绍该控件的 API 的文档,而是记录本人使用过程中的一些学习情况. 先看一下效果图  月/周/日视图 ...

  8. android日历控件(一)

    自定义日历并且具备设置今天以前的时间不可点选,以前的颜色和当前的颜色不同,以及获取两次点击日期之间间隔的天数所以说细节比较多 个人习惯,先上图 靠,笔记本不知道怎么回事,禁用到触摸板之后 再次唤醒屏幕 ...

  9. mvc 日历控件

    第二个是日历控件,在网上查了一个普通的日历控件,也生成了下拉的日历样子,但是一些脚本比如选择年月,需要一些时间,最后只好套用了My97 DatePicker,这样以来其实简单多了. 第一步:下载 My ...

随机推荐

  1. The sixth day

    bound to 铁定You are bound to be fired  你会被铁定开除的 A:Dan forgot his map? Dan忘了带地图了吗? B:Yep!And he's boun ...

  2. 未整理js

    函数+对象=方法 方法是动作 有参数的函数=实例 使用new关键字和函数来创建一个实例 var p =new Point(1,1)//平面几何的点 表示遍历的语句样子: for(var i =0; i ...

  3. C#高性能Socket服务器IOCP实现

    引言我一直在探寻一个高性能的Socket客户端代码.以前,我使用Socket类写了一些基于传统异步编程模型的代码(BeginSend.BeginReceive,等等)也看过很多博客的知识,在linux ...

  4. Spring之IOC核心模块详解

    Spring IOC简述 IOC称为控制反转,也有一种说法叫DI(依赖注入).IOC也是spring最核心的模块,Spring的所有工作几乎都围绕着IOC展开. 什么是控制反转呢?简单的说,控制反转就 ...

  5. pat乙级1045

    从左到右扫描时记录扫描到当前下标为止的最大值,如果当前元素大于这个最大值,那么它就大于它左边的所有值.同理,从右到左扫描记录扫描到当前下标为止的最小值,如果当前元素小于这个最大小值,那么它就小于它右边 ...

  6. 【BZOJ1216】[HNOI2003] 操作系统(堆+模拟)

    点此看题面 大致题意: 有\(n\)个任务,每个任务有4个属性:编号.到达时间.执行时间和优先级.每个单位时间,会执行一个优先级最高(若有多个优先级最高的,就先执行到达时间较早的)的任务,请你按完成的 ...

  7. 2018.6.13 Java语言基础复习总结

    Java语言基础与面向对象编程实践 第一章 初识Java 1.1机器语言 机器语言是指一台计算机全部的指令集合.机器语言室友0和1组成的二进制数,是一串串由0和1组成的指令序列,可将这些指令序列交给计 ...

  8. python_62_装饰器5

    import time def timer(func): #timer(test1) func=test1 def deco(*args,**kwargs): start_time=time.time ...

  9. java基础编程——重建二叉树

    题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树.假设输入的前序遍历和中序遍历的结果中都不含重复的数字.例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7, ...

  10. C#语句对Access中数据更新问题――Update语法错误

    所有字段最好都用[] 括起来: string sqlUpdate = "update UserInfo set [password] = '" + pass + "',[ ...