最近在做一个教育类的项目,遇到了公式编辑的问题,网上一搜,搜到了jmeditor这个插件,想把这个插件移植到kindeditor,于是网上搜索,终于让我搜出一片帖子,针对于这个帖子,我自己写了一部分,帖子参考地址:http://www.liuchang.org/blog/JavaScript/245.html 。
http://www.cnblogs.com/libaoting/p/KindEditor.html?utm_source=tuicool&utm_medium=referral
我这里用的是 KindEditor 4.1.10 http://kindeditor.net/down.php
JMEditor-0.9.4 http://www.jmeditor.com/
首先下载源码之后将项目放入到框架内,在这里我定义了多个kindeditor.js,便于项目零活运用。
1、复制 jmeditor 下面的ckeditor\plugins\jme 到 kindeditor下面的 plugins, 然后在复制 jme下的 mathquill-0.9.1 值 kindeditor下面的plugins/ jme中。复制好之后如下图所示
2、修改 kindeditor 下面的 plugins/jme/plugin.js,将plugin.js重名名为jme.js 代码如下:
KindEditor.lang({ jme : '插入公式' }); KindEditor.plugin('jme', function(e){ var editor = this, name = 'jme'; editor.clickToolbar(name, function() { var dialog = editor.createDialog({ name : 'about', width : 400, height : 400, title : editor.lang('about'), body : '<div style="width:400px;height:400px;">' + '<iframe id="math_frame" style="width:400px;height:400px;" frameborder="no" src="' + KindEditor.basePath + 'plugins/jme/dialogs/mathdialog.html"></iframe></div>', closeBtn : { name : '关闭', click : function(e) { dialog.remove(); } }, yesBtn : { name : '确定', click : function(e) { var thedoc = document.frames ? document.frames('math_frame').document : getIFrameDOM("math_frame"); var mathHTML = '<span class="mathquill-rendered-math" style="font-size:' + '20px' + ';" >' + $("#jme-math",thedoc).html() + '</span><span> </span>'; editor.insertHtml(mathHTML); // dialog.remove(); return; } } }); }); }); function getIFrameDOM(fid){ var fm = getIFrame(fid); return fm.document||fm.contentDocument; } function getIFrame(fid){ return document.getElementById(fid)||document.frames[fid]; }
3、修改 kindeditor 下面的 plugins/jme/dialog/dialog.js,主要修改 为当前工作目录和全局变量,修改如下:这里 需要注意的是后面的延时函数,如果提示 $ 没有定义 可以适当延时,等待 jquery加载完成。在这里额外的提醒大家一下这里有个jquery 路径填写,大家一定要填写自己的jquery路径,否则你懂得。。
var KindEditor = parent.KindEditor || {}; document.write( "<link href=\"" + KindEditor.basePath + "plugins/jme/mathquill-0.9.1/mathquill.css\" rel=\"stylesheet\" type=\"text/css\" />" + "<script type=\"text/javascript\" src=\"" + KindEditor.basePath + "../jquery-easyui/jquery.min.js\"></script>" + "<script type=\"text/javascript\" src=\"" + KindEditor.basePath + "plugins/jme/mathquill-0.9.1/mathquill.min.js\"></script>"); var jmeMath = [ [ "{/}frac{}{}","^{}/_{}","x^{}","x_{}","x^{}_{}","{/}bar{}","{/}sqrt{}","{/}nthroot{}{}", "{/}sum^{}_{n=}","{/}sum","{/}log_{}","{/}ln","{/}int_{}^{}","{/}oint_{}^{}" ], [ "{/}alpha","{/}beta","{/}gamma","{/}delta","{/}varepsilon","{/}varphi","{/}lambda","{/}mu", "{/}rho","{/}sigma","{/}omega","{/}Gamma","{/}Delta","{/}Theta","{/}Lambda","{/}Xi", "{/}Pi","{/}Sigma","{/}Upsilon","{/}Phi","{/}Psi","{/}Omega" ], [ "+","-","{/}pm","{/}times","{/}ast","{/}div","/","{/}bigtriangleup", "=","{/}ne","{/}approx",">","<","{/}ge","{/}le","{/}infty", "{/}cap","{/}cup","{/}because","{/}therefore","{/}subset","{/}supset","{/}subseteq","{/}supseteq", "{/}nsubseteq","{/}nsupseteq","{/}in","{/}ni","{/}notin","{/}mapsto","{/}leftarrow","{/}rightarrow", "{/}Leftarrow","{/}Rightarrow","{/}leftrightarrow","{/}Leftrightarrow" ] ]; function mathHtml(obj){ var cols = 8;//一行放几个 var slidLen = 34;//每个图标的宽或高 var html="<div class='mathIcon'>"; for(var i = 0 ; i < obj.count ; i ++){ html += "<li onclick=\"insert('" + jmeMath[obj.groupid][i] + "')\" style=\"background-position:-" + (obj.x + Math.floor(i%8)*slidLen) + "px -" + (obj.y + Math.floor(i/8)*slidLen) + "px;\"></li>"; } html += "</div>"; if(obj.count > cols * 2){ html += "<div class='more' mrows='" + Math.floor((obj.count + cols - 1) / cols) + "' isOpen='0'>更多</div>" } return html; } function insert(q){ $("#jme-math").focus().mathquill("write", q.replace("{/}","\\")); } setTimeout(function(){ $(document).ready(function(){ //隐藏内容div $(".tabContent div.mathBox").hide(); //菜单点击事件 $(".tabTitle li").click(function(){ $(".tabContent div.mathBox").hide(); var n = 0; var obj = this; $(".tabTitle li").each(function(i,o){ if(obj == o){ n = i; } }); $(".tabTitle li").removeClass("current"); $(obj).addClass("current"); $(".tabContent div.mathBox:eq(" + n + ")").show(); }); //缺省显示第一个 $(".tabTitle li:eq(0)").click(); //公式定义 $(".tabContent div.mathBox:eq(0)").html(mathHtml({ groupid:0, x:0, y:272, count:14 })); $(".tabContent div.mathBox:eq(2)").html(mathHtml({ groupid:2, x:0, y:0, count:36 })); $(".tabContent div.mathBox:eq(1)").html(mathHtml({ groupid:1, x:0, y:170, count:22 })); //常用公式,更多按钮绑定的事件 $(".tabContent div.mathBox div.more").click(function(){ var rowHei = 40; var mi = $(this).parent().find(".mathIcon"); if($(this).attr("isOpen") == '0'){ mi.animate({"height":(rowHei * Number($(this).attr("mrows")))+"px"}); $(this).html("↑ 收起"); $(this).attr("isOpen",'1'); }else{ mi.animate({"height":(rowHei * 2)+"px"}); $(this).html("更多"); $(this).attr("isOpen",'0'); } }); //公式编辑框 $("#jme-math").html("").css("font-size", '30px').mathquill('editable').mathquill('write', ""); //验证版本信息 if(KindEditor.versionCode){ $.ajax({ url:"http://www.jmeditor.com/jme/v.php", type:"post", dataType:"html", async:true, data: { versionCode:KindEditor.versionCode }, success:function(data){ $(".ad").html(data); }, error:function(){ //alert("err"); } }); } }); },1000);
4、拷贝 kindeditor-4.1.10/plugins/jme/mathquill-0.9.1/mathquill.css 代码 到 kindeditor-4.1.10/plugins/code/prettify.css里面
5、拷贝kindeditor-4.1.10/plugins/jme/icons/jme.png 公式图标logo 到kindeditor-4.1.10/themes/default/ 文件夹下
6、修改kindeditor-4.1.10/themes/default/default.css (加载公式图标logo)
在
.ke-toolbar .ke-disabled {
cursor: default;
}
下方添加
.ke-icon-jme{ background: url(jme.png) 0 0 no-repeat; width: 16px; height: 16px; }
7、修改kindeditor-4.1.7/lang/zh_CN.js 添加如下图所示
unlink : '取消超级链接', fullscreen : '全屏显示', about : '关于', jme : '插入公式',
8、修改kindeditor-4.1.10/kindeditor.js。添加jme,添加之后直接在页面平常调用kindeditor
ok 这样项目就能显示了,怎样,是不是很帅。你也来试试吧。
相关推荐
而JMathEditor则是一个专门用于插入和编辑数学公式的插件,它可以与KindEditor结合使用,使得编辑器具有公式编辑功能。 集成KindEditor和JMathEditor的过程主要包括以下几个步骤: 1. **下载与引入资源**:首先,...
总结,"公式编译器整理jmeditor+kindeditor"涉及到的IT知识点主要包括富文本编辑器的使用,尤其是数学公式的支持,以及如何在实际项目中集成和优化这些工具,以满足特定的业务需求。开发者需要具备JavaScript编程...
本话题聚焦于一个特定的应用场景:将KindEditor编辑器与JMEditor公式编辑器进行整合,以实现一个适用于题库系统的强大文本编辑解决方案。 KindEditor是一款开源的Web富文本编辑器,它支持多种浏览器环境,提供了...
KindEditor非常适合在CMS、商城、论坛、博客、Wiki、电子邮件等互联网应用上使用,2006年7月首次发布2.0以来,KindEditor依靠出色的用户体验和领先的技术不断扩大编辑器市场占有率,目前在国内已经成为最受欢迎的...
在线HTML编辑器 KindEditor KindEditor 是一套开源的在线HTML编辑器,主要用于让用户在网站上获得所见即所得编辑效果,开发人员可以用 KindEditor 把传统的多行文本输入框(textarea)替换为可视化的富文本输入框。 ...
asp 版的KindEditor 3.5.1编辑器 外部编辑器 web编辑器 最新版的KindEditor 编辑器 适合asp jsp的编辑器 这是经过本人一个下午测试的 ,保证可以使用 在这拿出来 大家一起学习学习 QQ290273103
Java集成富文本编辑器KindEditor是一项常见的Web开发任务,它能提供给用户一个可视化的文本编辑界面,使得在网页上创建、编辑带有格式的文本变得简单。KindEditor是一款开源的JavaScript富文本编辑器,适用于Java...
UEditor公式编辑器是一款强大的在线文本编辑工具,它集成了MathQuill库,使得用户能够方便地在网页上创建和编辑数学公式。这个编辑器对于教育、科研或任何需要展示数学表达式的领域都非常实用,因为它提供了直观的...
jsp 版的KindEditor 3.5.1编辑器 外部编辑器 web编辑器 最新版的KindEditor 编辑器 适合asp jsp的编辑器 这是经过本人一个下午测试的 ,保证可以使用 在这拿出来 大家一起学习学习 QQ290273103
在IT领域,尤其是在Web开发中,常常需要处理各种富文本编辑需求,其中包括数学公式的编辑。...总的来说,"UEditor、mathquill集成公式编辑器"是一个高效且实用的Web开发工具,为数学公式编辑提供了便捷的解决方案。
资源名:KindEditor ASP 版后台编辑器源码 资源类型:程序源代码 源码说明: KindEditor ASP版后台编辑器UTF-8和GB2312均可用 这是KindEditor的ASP版网站后台编辑器,通过测试使用的。 兼容现有的各种浏览器,UTF-8...
通过以上步骤,我们成功地将KindEditor集成到了Winform应用中,创建了一个功能齐全的Html编辑器。这个编辑器可以满足用户对富文本编辑的需求,包括文字格式化、插入图片、链接等。在实际开发中,可以根据具体需求...
KindEditor是一款功能强大的开源富文本编辑器,尤其适合Java Web项目,因为它是JSP兼容的。下面将详细介绍KindEditor以及其在实际应用中的相关知识点。 1. **KindEditor的基本结构** KindEditor是由一系列...
kindeditor-3.3 编辑器kindeditor-3.3 编辑器kindeditor-3.3 编辑器kindeditor-3.3 编辑器kindeditor-3.3 编辑器kindeditor-3.3 编辑器
Java Web 富文本编辑器(KindEditor) Java Web 富文本编辑器(KindEditor)是基于 Java Web 开发的富文本编辑器解决方案,旨在解决开发过程中的编辑功能、图片文件等操作。通过使用 KindEditor,可以快速实现富...
KindEditor是一款功能强大的开源富文本编辑器,广泛应用于网页内容编辑和管理。它提供了一种简单易用的界面,使得用户可以轻松地进行文本格式化、插入图片、创建链接等操作,大大提升了网页内容创作的效率。在这个...
Kindeditor文本编辑器是一款在IT领域中广泛应用的开源富文本编辑器,它的设计目标是提供一个易用且功能丰富的Web内容创作环境。这个编辑器以其简单易上手、功能全面的特点,深受开发者和用户的喜爱。它能够很好地...
这个编辑器支持多种语言,包括HTML、CSS、JavaScript等,可以方便地集成到各种Web应用中,提供丰富的编辑功能,如字体设置、颜色调整、图像上传、链接创建等。 编辑器的核心组件是`KindEditor.js`,这是一个...