| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137 | 
							- /**
 
-  * 格式刷,只格式inline的
 
-  * @file
 
-  * @since 1.2.6.1
 
-  */
 
- /**
 
-  * 格式刷
 
-  * @command formatmatch
 
-  * @method execCommand
 
-  * @remind 该操作不能复制段落格式
 
-  * @param { String } cmd 命令字符串
 
-  * @example
 
-  * ```javascript
 
-  * //editor是编辑器实例
 
-  * //获取格式刷
 
-  * editor.execCommand( 'formatmatch' );
 
-  * ```
 
-  */
 
- UE.plugins['formatmatch'] = function(){
 
-     var me = this,
 
-         list = [],img,
 
-         flag = 0;
 
-      me.addListener('reset',function(){
 
-          list = [];
 
-          flag = 0;
 
-      });
 
-     function addList(type,evt){
 
-         
 
-         if(browser.webkit){
 
-             var target = evt.target.tagName == 'IMG' ? evt.target : null;
 
-         }
 
-         function addFormat(range){
 
-             if(text){
 
-                 range.selectNode(text);
 
-             }
 
-             return range.applyInlineStyle(list[list.length-1].tagName,null,list);
 
-         }
 
-         me.undoManger && me.undoManger.save();
 
-         var range = me.selection.getRange(),
 
-             imgT = target || range.getClosedNode();
 
-         if(img && imgT && imgT.tagName == 'IMG'){
 
-             //trace:964
 
-             imgT.style.cssText += ';float:' + (img.style.cssFloat || img.style.styleFloat ||'none') + ';display:' + (img.style.display||'inline');
 
-             img = null;
 
-         }else{
 
-             if(!img){
 
-                 var collapsed = range.collapsed;
 
-                 if(collapsed){
 
-                     var text = me.document.createTextNode('match');
 
-                     range.insertNode(text).select();
 
-                 }
 
-                 me.__hasEnterExecCommand = true;
 
-                 //不能把block上的属性干掉
 
-                 //trace:1553
 
-                 var removeFormatAttributes = me.options.removeFormatAttributes;
 
-                 me.options.removeFormatAttributes = '';
 
-                 me.execCommand('removeformat');
 
-                 me.options.removeFormatAttributes = removeFormatAttributes;
 
-                 me.__hasEnterExecCommand = false;
 
-                 //trace:969
 
-                 range = me.selection.getRange();
 
-                 if(list.length){
 
-                     addFormat(range);
 
-                 }
 
-                 if(text){
 
-                     range.setStartBefore(text).collapse(true);
 
-                 }
 
-                 range.select();
 
-                 text && domUtils.remove(text);
 
-             }
 
-         }
 
-         me.undoManger && me.undoManger.save();
 
-         me.removeListener('mouseup',addList);
 
-         flag = 0;
 
-     }
 
-     me.commands['formatmatch'] = {
 
-         execCommand : function( cmdName ) {
 
-           
 
-             if(flag){
 
-                 flag = 0;
 
-                 list = [];
 
-                  me.removeListener('mouseup',addList);
 
-                 return;
 
-             }
 
-               
 
-             var range = me.selection.getRange();
 
-             img = range.getClosedNode();
 
-             if(!img || img.tagName != 'IMG'){
 
-                range.collapse(true).shrinkBoundary();
 
-                var start = range.startContainer;
 
-                list = domUtils.findParents(start,true,function(node){
 
-                    return !domUtils.isBlockElm(node) && node.nodeType == 1;
 
-                });
 
-                //a不能加入格式刷, 并且克隆节点
 
-                for(var i=0,ci;ci=list[i];i++){
 
-                    if(ci.tagName == 'A'){
 
-                        list.splice(i,1);
 
-                        break;
 
-                    }
 
-                }
 
-             }
 
-             me.addListener('mouseup',addList);
 
-             flag = 1;
 
-         },
 
-         queryCommandState : function() {
 
-             return flag;
 
-         },
 
-         notNeedUndo : 1
 
-     };
 
- };
 
 
  |