`
Passager009
  • 浏览: 14426 次
  • 性别: Icon_minigender_1
  • 来自: 日照
社区版块
存档分类
最新评论

kindeditor集成jmeditor公式web编辑器

阅读更多



        最近在做一个教育类的项目,遇到了公式编辑的问题,网上一搜,搜到了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>&nbsp;</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 这样项目就能显示了,怎样,是不是很帅。你也来试试吧。

 

 

 

 资源下载地址:http://download.csdn.net/detail/guoluren009/9400675

  • 大小: 18.7 KB
  • 大小: 12 KB
  • 大小: 55.7 KB
  • 大小: 23.4 KB
  • 大小: 16.8 KB
0
0
分享到:
评论

相关推荐

    kindeditor集成jmeditor公式HTML富文本编辑器

    而JMathEditor则是一个专门用于插入和编辑数学公式的插件,它可以与KindEditor结合使用,使得编辑器具有公式编辑功能。 集成KindEditor和JMathEditor的过程主要包括以下几个步骤: 1. **下载与引入资源**:首先,...

    公式编译器整理jmeditor+kindeditor

    总结,"公式编译器整理jmeditor+kindeditor"涉及到的IT知识点主要包括富文本编辑器的使用,尤其是数学公式的支持,以及如何在实际项目中集成和优化这些工具,以满足特定的业务需求。开发者需要具备JavaScript编程...

    kindeditor整合公式编辑器

    本话题聚焦于一个特定的应用场景:将KindEditor编辑器与JMEditor公式编辑器进行整合,以实现一个适用于题库系统的强大文本编辑解决方案。 KindEditor是一款开源的Web富文本编辑器,它支持多种浏览器环境,提供了...

    KindEditor在线编辑器

    KindEditor非常适合在CMS、商城、论坛、博客、Wiki、电子邮件等互联网应用上使用,2006年7月首次发布2.0以来,KindEditor依靠出色的用户体验和领先的技术不断扩大编辑器市场占有率,目前在国内已经成为最受欢迎的...

    在线HTML编辑器 KindEditor已配置直接使用

    在线HTML编辑器 KindEditor KindEditor 是一套开源的在线HTML编辑器,主要用于让用户在网站上获得所见即所得编辑效果,开发人员可以用 KindEditor 把传统的多行文本输入框(textarea)替换为可视化的富文本输入框。 ...

    asp 版的KindEditor 3.5.1编辑器 外部编辑器 web编辑器 最新版的KindEditor 编辑器 适合asp jsp的编辑器

    asp 版的KindEditor 3.5.1编辑器 外部编辑器 web编辑器 最新版的KindEditor 编辑器 适合asp jsp的编辑器 这是经过本人一个下午测试的 ,保证可以使用 在这拿出来 大家一起学习学习 QQ290273103

    java集成富文本编辑器KindEditor

    Java集成富文本编辑器KindEditor是一项常见的Web开发任务,它能提供给用户一个可视化的文本编辑界面,使得在网页上创建、编辑带有格式的文本变得简单。KindEditor是一款开源的JavaScript富文本编辑器,适用于Java...

    UEditor公式编辑器 UEditor、mathquill集成公式编辑器

    UEditor公式编辑器是一款强大的在线文本编辑工具,它集成了MathQuill库,使得用户能够方便地在网页上创建和编辑数学公式。这个编辑器对于教育、科研或任何需要展示数学表达式的领域都非常实用,因为它提供了直观的...

    jsp 版的KindEditor 3.5.1编辑器 外部编辑器 web编辑器 最新版的KindEditor 编辑器 适合asp jsp的编辑器

    jsp 版的KindEditor 3.5.1编辑器 外部编辑器 web编辑器 最新版的KindEditor 编辑器 适合asp jsp的编辑器 这是经过本人一个下午测试的 ,保证可以使用 在这拿出来 大家一起学习学习 QQ290273103

    UEditor、mathquill集成公式编辑器

    在IT领域,尤其是在Web开发中,常常需要处理各种富文本编辑需求,其中包括数学公式的编辑。...总的来说,"UEditor、mathquill集成公式编辑器"是一个高效且实用的Web开发工具,为数学公式编辑提供了便捷的解决方案。

    KindEditor ASP 版网站后台编辑器源码

    资源名:KindEditor ASP 版后台编辑器源码 资源类型:程序源代码 源码说明: KindEditor ASP版后台编辑器UTF-8和GB2312均可用 这是KindEditor的ASP版网站后台编辑器,通过测试使用的。 兼容现有的各种浏览器,UTF-8...

    Winform Html Editor 使用kindeditor组件实现winform Html 编辑器

    通过以上步骤,我们成功地将KindEditor集成到了Winform应用中,创建了一个功能齐全的Html编辑器。这个编辑器可以满足用户对富文本编辑的需求,包括文字格式化、插入图片、链接等。在实际开发中,可以根据具体需求...

    kindeditor-富文本框编辑器插件

    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 编辑器kindeditor-3.3 编辑器

    Java web富文本编辑器(kindeditor).docx

    Java Web 富文本编辑器(KindEditor) Java Web 富文本编辑器(KindEditor)是基于 Java Web 开发的富文本编辑器解决方案,旨在解决开发过程中的编辑功能、图片文件等操作。通过使用 KindEditor,可以快速实现富...

    kindeditor文本编辑器实例(包含本地图片上传及浏览服务器方法)

    KindEditor是一款功能强大的开源富文本编辑器,广泛应用于网页内容编辑和管理。它提供了一种简单易用的界面,使得用户可以轻松地进行文本格式化、插入图片、创建链接等操作,大大提升了网页内容创作的效率。在这个...

    Kindeditor文本编辑器

    Kindeditor文本编辑器是一款在IT领域中广泛应用的开源富文本编辑器,它的设计目标是提供一个易用且功能丰富的Web内容创作环境。这个编辑器以其简单易上手、功能全面的特点,深受开发者和用户的喜爱。它能够很好地...

    kindeditor在线HTML代码编辑器

    这个编辑器支持多种语言,包括HTML、CSS、JavaScript等,可以方便地集成到各种Web应用中,提供丰富的编辑功能,如字体设置、颜色调整、图像上传、链接创建等。 编辑器的核心组件是`KindEditor.js`,这是一个...

Global site tag (gtag.js) - Google Analytics