| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247 | 
							- /**
 
-  * 图片插入、排版插件
 
-  * @file
 
-  * @since 1.2.6.1
 
-  */
 
- /**
 
-  * 图片对齐方式
 
-  * @command imagefloat
 
-  * @method execCommand
 
-  * @remind 值center为独占一行居中
 
-  * @param { String } cmd 命令字符串
 
-  * @param { String } align 对齐方式,可传left、right、none、center
 
-  * @remaind center表示图片独占一行
 
-  * @example
 
-  * ```javascript
 
-  * editor.execCommand( 'imagefloat', 'center' );
 
-  * ```
 
-  */
 
- /**
 
-  * 如果选区所在位置是图片区域
 
-  * @command imagefloat
 
-  * @method queryCommandValue
 
-  * @param { String } cmd 命令字符串
 
-  * @return { String } 返回图片对齐方式
 
-  * @example
 
-  * ```javascript
 
-  * editor.queryCommandValue( 'imagefloat' );
 
-  * ```
 
-  */
 
- UE.commands['imagefloat'] = {
 
-     execCommand:function (cmd, align) {
 
-         var me = this,
 
-             range = me.selection.getRange();
 
-         if (!range.collapsed) {
 
-             var img = range.getClosedNode();
 
-             if (img && img.tagName == 'IMG') {
 
-                 switch (align) {
 
-                     case 'left':
 
-                     case 'right':
 
-                     case 'none':
 
-                         var pN = img.parentNode, tmpNode, pre, next;
 
-                         while (dtd.$inline[pN.tagName] || pN.tagName == 'A') {
 
-                             pN = pN.parentNode;
 
-                         }
 
-                         tmpNode = pN;
 
-                         if (tmpNode.tagName == 'P' && domUtils.getStyle(tmpNode, 'text-align') == 'center') {
 
-                             if (!domUtils.isBody(tmpNode) && domUtils.getChildCount(tmpNode, function (node) {
 
-                                 return !domUtils.isBr(node) && !domUtils.isWhitespace(node);
 
-                             }) == 1) {
 
-                                 pre = tmpNode.previousSibling;
 
-                                 next = tmpNode.nextSibling;
 
-                                 if (pre && next && pre.nodeType == 1 && next.nodeType == 1 && pre.tagName == next.tagName && domUtils.isBlockElm(pre)) {
 
-                                     pre.appendChild(tmpNode.firstChild);
 
-                                     while (next.firstChild) {
 
-                                         pre.appendChild(next.firstChild);
 
-                                     }
 
-                                     domUtils.remove(tmpNode);
 
-                                     domUtils.remove(next);
 
-                                 } else {
 
-                                     domUtils.setStyle(tmpNode, 'text-align', '');
 
-                                 }
 
-                             }
 
-                             range.selectNode(img).select();
 
-                         }
 
-                         domUtils.setStyle(img, 'float', align == 'none' ? '' : align);
 
-                         if(align == 'none'){
 
-                             domUtils.removeAttributes(img,'align');
 
-                         }
 
-                         break;
 
-                     case 'center':
 
-                         if (me.queryCommandValue('imagefloat') != 'center') {
 
-                             pN = img.parentNode;
 
-                             domUtils.setStyle(img, 'float', '');
 
-                             domUtils.removeAttributes(img,'align');
 
-                             tmpNode = img;
 
-                             while (pN && domUtils.getChildCount(pN, function (node) {
 
-                                 return !domUtils.isBr(node) && !domUtils.isWhitespace(node);
 
-                             }) == 1
 
-                                 && (dtd.$inline[pN.tagName] || pN.tagName == 'A')) {
 
-                                 tmpNode = pN;
 
-                                 pN = pN.parentNode;
 
-                             }
 
-                             range.setStartBefore(tmpNode).setCursor(false);
 
-                             pN = me.document.createElement('div');
 
-                             pN.appendChild(tmpNode);
 
-                             domUtils.setStyle(tmpNode, 'float', '');
 
-                             me.execCommand('insertHtml', '<p id="_img_parent_tmp" style="text-align:center">' + pN.innerHTML + '</p>');
 
-                             tmpNode = me.document.getElementById('_img_parent_tmp');
 
-                             tmpNode.removeAttribute('id');
 
-                             tmpNode = tmpNode.firstChild;
 
-                             range.selectNode(tmpNode).select();
 
-                             //去掉后边多余的元素
 
-                             next = tmpNode.parentNode.nextSibling;
 
-                             if (next && domUtils.isEmptyNode(next)) {
 
-                                 domUtils.remove(next);
 
-                             }
 
-                         }
 
-                         break;
 
-                 }
 
-             }
 
-         }
 
-     },
 
-     queryCommandValue:function () {
 
-         var range = this.selection.getRange(),
 
-             startNode, floatStyle;
 
-         if (range.collapsed) {
 
-             return 'none';
 
-         }
 
-         startNode = range.getClosedNode();
 
-         if (startNode && startNode.nodeType == 1 && startNode.tagName == 'IMG') {
 
-             floatStyle = domUtils.getComputedStyle(startNode, 'float') || startNode.getAttribute('align');
 
-             if (floatStyle == 'none') {
 
-                 floatStyle = domUtils.getComputedStyle(startNode.parentNode, 'text-align') == 'center' ? 'center' : floatStyle;
 
-             }
 
-             return {
 
-                 left:1,
 
-                 right:1,
 
-                 center:1
 
-             }[floatStyle] ? floatStyle : 'none';
 
-         }
 
-         return 'none';
 
-     },
 
-     queryCommandState:function () {
 
-         var range = this.selection.getRange(),
 
-             startNode;
 
-         if (range.collapsed)  return -1;
 
-         startNode = range.getClosedNode();
 
-         if (startNode && startNode.nodeType == 1 && startNode.tagName == 'IMG') {
 
-             return 0;
 
-         }
 
-         return -1;
 
-     }
 
- };
 
- /**
 
-  * 插入图片
 
-  * @command insertimage
 
-  * @method execCommand
 
-  * @param { String } cmd 命令字符串
 
-  * @param { Object } opt 属性键值对,这些属性都将被复制到当前插入图片
 
-  * @remind 该命令第二个参数可接受一个图片配置项对象的数组,可以插入多张图片,
 
-  * 此时数组的每一个元素都是一个Object类型的图片属性集合。
 
-  * @example
 
-  * ```javascript
 
-  * editor.execCommand( 'insertimage', {
 
-  *     src:'a/b/c.jpg',
 
-  *     width:'100',
 
-  *     height:'100'
 
-  * } );
 
-  * ```
 
-  * @example
 
-  * ```javascript
 
-  * editor.execCommand( 'insertimage', [{
 
-  *     src:'a/b/c.jpg',
 
-  *     width:'100',
 
-  *     height:'100'
 
-  * },{
 
-  *     src:'a/b/d.jpg',
 
-  *     width:'100',
 
-  *     height:'100'
 
-  * }] );
 
-  * ```
 
-  */
 
- UE.commands['insertimage'] = {
 
-     execCommand:function (cmd, opt) {
 
-         opt = utils.isArray(opt) ? opt : [opt];
 
-         if (!opt.length) {
 
-             return;
 
-         }
 
-         var me = this,
 
-             range = me.selection.getRange(),
 
-             img = range.getClosedNode();
 
-         if(me.fireEvent('beforeinsertimage', opt) === true){
 
-             return;
 
-         }
 
-         if (img && /img/i.test(img.tagName) && (img.className != "edui-faked-video" || img.className.indexOf("edui-upload-video")!=-1) && !img.getAttribute("word_img")) {
 
-             var first = opt.shift();
 
-             var floatStyle = first['floatStyle'];
 
-             delete first['floatStyle'];
 
- ////                img.style.border = (first.border||0) +"px solid #000";
 
- ////                img.style.margin = (first.margin||0) +"px";
 
- //                img.style.cssText += ';margin:' + (first.margin||0) +"px;" + 'border:' + (first.border||0) +"px solid #000";
 
-             domUtils.setAttributes(img, first);
 
-             me.execCommand('imagefloat', floatStyle);
 
-             if (opt.length > 0) {
 
-                 range.setStartAfter(img).setCursor(false, true);
 
-                 me.execCommand('insertimage', opt);
 
-             }
 
-         } else {
 
-             var html = [], str = '', ci;
 
-             ci = opt[0];
 
-             if (opt.length == 1) {
 
-                 str = '<img src="' + ci.src + '" ' + (ci._src ? ' _src="' + ci._src + '" ' : '') +
 
-                     (ci.width ? 'width="' + ci.width + '" ' : '') +
 
-                     (ci.height ? ' height="' + ci.height + '" ' : '') +
 
-                     (ci['floatStyle'] == 'left' || ci['floatStyle'] == 'right' ? ' style="float:' + ci['floatStyle'] + ';"' : '') +
 
-                     (ci.title && ci.title != "" ? ' title="' + ci.title + '"' : '') +
 
-                     (ci.border && ci.border != "0" ? ' border="' + ci.border + '"' : '') +
 
-                     (ci.alt && ci.alt != "" ? ' alt="' + ci.alt + '"' : '') +
 
-                     (ci.hspace && ci.hspace != "0" ? ' hspace = "' + ci.hspace + '"' : '') +
 
-                     (ci.vspace && ci.vspace != "0" ? ' vspace = "' + ci.vspace + '"' : '') + '/>';
 
-                 if (ci['floatStyle'] == 'center') {
 
-                     str = '<p style="text-align: center">' + str + '</p>';
 
-                 }
 
-                 html.push(str);
 
-             } else {
 
-                 for (var i = 0; ci = opt[i++];) {
 
-                     str = '<p ' + (ci['floatStyle'] == 'center' ? 'style="text-align: center" ' : '') + '><img src="' + ci.src + '" ' +
 
-                         (ci.width ? 'width="' + ci.width + '" ' : '') + (ci._src ? ' _src="' + ci._src + '" ' : '') +
 
-                         (ci.height ? ' height="' + ci.height + '" ' : '') +
 
-                         ' style="' + (ci['floatStyle'] && ci['floatStyle'] != 'center' ? 'float:' + ci['floatStyle'] + ';' : '') +
 
-                         (ci.border || '') + '" ' +
 
-                         (ci.title ? ' title="' + ci.title + '"' : '') + ' /></p>';
 
-                     html.push(str);
 
-                 }
 
-             }
 
-             me.execCommand('insertHtml', html.join(''));
 
-         }
 
-         me.fireEvent('afterinsertimage', opt)
 
-     }
 
- };
 
 
  |