UEditor添加一个普通按钮及其他使用注意事项

添加一个名叫“hougelou”的普通按钮

附言:以下是以UEditor .Net版本举例说明。

第一步:找到ueditor.config.js文件中的toolbars数组,增加一个“hougelou”字符串,然后找到labelMap数组,对应着添加一个labelMap,用于鼠标移上按钮时的提示。

//工具栏上的所有的功能按钮和下拉框,可以在new编辑器的实例时选择自己需要的从新定义
        , toolbars:[
            ['fullscreen', 'source', '|', 'undo', 'redo', '|',
                'bold', 'italic', 'underline', 'fontborder', 'strikethrough', 'superscript', 'subscript', 'removeformat', 'formatmatch', 'hougelou', 'autotypeset', 'blockquote', 'pasteplain', '|', 'forecolor', 'backcolor', 'insertorderedlist', 'insertunorderedlist', 'selectall', 'cleardoc', '|',
                'rowspacingtop', 'rowspacingbottom', 'lineheight', '|',
                'customstyle', 'paragraph', 'fontfamily', 'fontsize', '|',
                'directionalityltr', 'directionalityrtl', 'indent', '|',
                'justifyleft', 'justifycenter', 'justifyright', 'justifyjustify', '|', 'touppercase', 'tolowercase', '|',
                'link', 'unlink', 'anchor', '|', 'imagenone', 'imageleft', 'imageright', 'imagecenter', '|',
                'insertimage', 'emotion', 'scrawl', 'insertvideo', 'music', 'attachment', 'map', 'gmap', 'insertframe','insertcode', 'webapp', 'pagebreak', 'template', 'background', '|',
                'horizontal', 'date', 'time', 'spechars', 'snapscreen', 'wordimage', '|',
                'inserttable', 'deletetable', 'insertparagraphbeforetable', 'insertrow', 'deleterow', 'insertcol', 'deletecol', 'mergecells', 'mergeright', 'mergedown', 'splittocells', 'splittorows', 'splittocols', '|',
                'print', 'preview', 'searchreplace', 'help']
        ]

第二步:找到你所引用的ueditor.all.js文件中的btnCmds数组,在其中同样增加一个“hougelou”字符串。

         

//为工具栏添加按钮,以下都是统一的按钮触发命令,所以写在一起
    var btnCmds = ['hougelou','undo', 'redo', 'formatmatch',
        'bold', 'italic', 'underline', 'fontborder', 'touppercase', 'tolowercase',
        'strikethrough', 'subscript', 'superscript', 'source', 'indent', 'outdent',
        'blockquote', 'pasteplain', 'pagebreak',
        'selectall', 'print','horizontal', 'removeformat', 'time', 'date', 'unlink',
        'insertparagraphbeforetable', 'insertrow', 'insertcol', 'mergeright', 'mergedown', 'deleterow',
        'deletecol', 'splittorows', 'splittocols', 'splittocells', 'mergecells', 'deletetable', 'drafts'];

---------------------------在下面加上图标的执行代码--------------------------
//添加logo
    editorui.hougelou = function (editor) {
      var ui = new editorui.Button({
            className:'edui-for-hougelou',//图标样式名称
            title:'hougelou',//鼠标悬浮时的提示
            theme:editor.options.theme,
            onclick:function () {
                editor.execCommand('insertHtml', "<img src='http://www.hougelou.com/images/logo.png' />"); return true;
            }
        });
        
        return ui;
    };

第三步:清空缓存刷新下页面吧!工具栏的对应位置是否出现了一个自己定义的按钮呢?如下图所示:

由于此时未设置对应按钮的图片样式,所以会显示默认的“B”字符。要想让其显示成自己需要的图标样式,接着按照下面的步骤动手吧。

第四步:找到themes/default/css/ueditor.css文件,增加一条样式定义:

.edui-for-hougelou .edui-icon {
    background-position: -700px -40px;
}

 



 ----------------------------------------------------------------------------------------------------------------------------------

另外,可以添加一个清除样式的功能,以上的步骤的类似。主要是下面的:

baidu.editor.commands['clearstyle'] = { execCommand: function () {
           UE.getEditor('txtContent').setContent(UE.getEditor('txtContent').getContent().replace(/[s]+style=("?)(.[^<>"]*)1/ig, ""));//txtContent是编辑器容器ID,clearstyle是功能名称
            return true;
        }, queryCommandState: function () { }
        };

我用的编辑器版本太低,清除样式自带的功能“removeformat”第一次使用可以,连续点击第二次却不可以,这个bug最新的UEditor版本已经修复了。所以以后直接用最新版的就可以了。

如果要粘贴的时候只粘贴文本,在config里全局设置或在初始化的时候设置为pasteplain:true 

----------------------------------------------------帅到没朋友的分割线------------------------------------------------------------------

以前使用uditor的时候有时候会遇到一个问题,就是UE.getEditor初始化之后赋值,结果有时候没有赋值成功。

我觉得这是因为赋值操作在ueditor的初始化过程还未完成前执行了,导致操作失败。

var ueditor = UE.getEditor('txtContent', {"initialFrameHeight": "200"});
ueditor.ready(function () {
     //加载完成后,该干嘛干嘛
}

 在images.ashx里发现百度编辑器返回图片路径是用分隔符“ue_separate_ue”连起来的。

原文地址:https://www.cnblogs.com/hougelou/p/3386675.html