ueditor1.4.3.1版本二次开发记录

最近项目需要拿ueditor做一些个性化功能,在此特意把修改的内容记录在这,一来方便自己知道改动过的地方,二来也是希望后来者如何需要做到类似的功能可以直接拿去用了。

1.去除复制粘贴内容中的图片、段落所包含的样式及类名

在ueditor.config.js中找到“filterTxtRules”配置,并修改为以下代码

 1 filterTxtRules : function(){
 2            function transP(node){
 3                node.tagName = 'p';
 4                node.attrs=''; //清空所有属性
 5                node.setStyle();               
 6            }
 7            return {
 8                //直接删除及其字节点内容
 9                '-' : 'script style object iframe embed input select',
10                'p': function(node){
11                    node.attrs=''; //清空粘贴内容中p元素所带的属性
12                },
13                'img':function(node){
14                 node.attrs['class']='';//清除class属性,此处不能使用node.attrs.class='',在ie8下报错,因为class是关键字
15                 node.attrs['style']='';//清除style属性
16                 node.setStyle();
17                },
18                'br':{'$':{}},
19                'div':{'$':{}},
20                'li':{'$':{}},
21                'caption':transP,
22                'th':transP,
23                'tr':transP,
24                'h1':transP,'h2':transP,'h3':transP,'h4':transP,'h5':transP,'h6':transP,
25                'td':function(node){
26                    //没有内容的td直接删掉
27                    var txt = !!node.innerText();
28                    if(txt){
29                        node.parentNode.insertAfter(UE.uNode.createText('    '),node);
30                    }
31                    node.parentNode.removeChild(node,node.innerText())
32                }
33            }
34         }()

 2.选中图片时段落居中等操作按钮灰色不可点

这个功能需要修改到ueditor源码,所以需要你下载的是完整源码版本,然后找到"_src/adapter/editorui.js"这个文件并定位到" //排版,图片排版,文字方向"这里,如截图

修改代码如下:

 1 //排版,图片排版,文字方向
 2     var typeset = {
 3         'justify':['left', 'right', 'center', 'justify'],
 4         'imagefloat':['none', 'left', 'center', 'right'],
 5         'directionality':['ltr', 'rtl']
 6     };
 7 
 8     for (var p in typeset) {
 9 
10         (function (cmd, val) {
11             var uilist = [];
12             for (var i = 0, ci; ci = val[i++];) {
13                 (function (cmd2) {
14                     editorui[cmd.replace('float', '') + cmd2] = function (editor) {
15                         var ui = new editorui.Button({
16                             className:'edui-for-' + cmd.replace('float', '') + cmd2,
17                             title:editor.options.labelMap[cmd.replace('float', '') + cmd2] || editor.getLang("labelMap." + cmd.replace('float', '') + cmd2) || '',
18                             theme:editor.options.theme,
19                             onclick:function () {
20                                 editor.execCommand(cmd, cmd2);
21                             }
22                         });
23                         uilist.push(ui);
24                         editorui.buttons[cmd] = ui;
25                         editor.addListener('selectionchange', function (type, causeByUi, uiReady) {
26                             var range = this.selection.getRange(),
27                                 startNode;
28                             startNode = range.getClosedNode();
29                             if (startNode && startNode.nodeType == 1 && startNode.tagName == 'IMG') {
30                                 if(/image/g.test(ui.className)){
31                                     ui.setDisabled(editor.queryCommandState(cmd) == -1);
32                                     ui.setChecked(editor.queryCommandValue(cmd) == cmd2 && !uiReady);
33                                 }else{
34                                     ui.setDisabled(true);
35                                 }
36 
37                             }else{
38                                 ui.setDisabled(editor.queryCommandState(cmd) == -1);
39                                 ui.setChecked(editor.queryCommandValue(cmd) == cmd2 && !uiReady);
40                             }
41                             
42                         });
43                         return ui;
44                     };
45                 })(ci)
46             }
47         })(p, typeset[p])
48     }

 

posted @ 2015-10-10 10:44  zhouzone  Views(1787)  Comments(1Edit  收藏  举报