Open assassin0905 opened 6 years ago
(function($){UMEDITOR_CONFIG=window.UMEDITOR_CONFIG||{};window.UM={plugins:{},commands:{},I18N:{},version:"1.2.2"};var dom=UM.dom={};var browser=UM.browser=function(){var agent=navigator.userAgent.toLowerCase(),opera=window.opera,browser={ie:/(msie\s|trident.rv:)([\w.]+)/.test(agent),opera:(!!opera&&opera.version),webkit:(agent.indexOf(' applewebkit/')>-1),mac:(agent.indexOf('macintosh')>-1),quirks:(document.compatMode=='BackCompat')};browser.gecko=(navigator.product=='Gecko'&&!browser.webkit&&!browser.opera&&!browser.ie);var version=0;if(browser.ie){var v1=agent.match(/(?:msie\s([\w.]+))/);var v2=agent.match(/(?:trident.rv:([\w.]+))/);if(v1&&v2&&v1[1]&&v2[1]){version=Math.max(v1[1]1,v2[1]1)}else if(v1&&v1[1]){version=v1[1]1}else if(v2&&v2[1]){version=v2[1]1}else{version=0}browser.ie11Compat=document.documentMode==11;browser.ie9Compat=document.documentMode==9;browser.ie8=!!document.documentMode;browser.ie8Compat=document.documentMode==8;browser.ie7Compat=((version==7&&!document.documentMode)||document.documentMode==7);browser.ie6Compat=(version<7||browser.quirks);browser.ie9above=version>8;browser.ie9below=version<9}if(browser.gecko){var geckoRelease=agent.match(/rv:([\d.]+)/);if(geckoRelease){geckoRelease=geckoRelease[1].split('.');version=geckoRelease[0]10000+(geckoRelease[1]||0)100+(geckoRelease[2]||0)1}}if(/chrome\/(\d+.\d)/i.test(agent)){browser.chrome=+RegExp['\x241']}if(/(\d+.\d)?(?:.\d)?\s+safari\/?(\d+.\d+)?/i.test(agent)&&!/chrome/i.test(agent)){browser.safari=+(RegExp['\x241']||RegExp['\x242'])}if(browser.opera)version=parseFloat(opera.version());if(browser.webkit)version=parseFloat(agent.match(/ applewebkit\/(\d+)/)[1]);browser.version=version;browser.isCompatible=!browser.mobile&&((browser.ie&&version>=6)||(browser.gecko&&version>=10801)||(browser.opera&&version>=9.5)||(browser.air&&version>=1)||(browser.webkit&&version>=522)||false);return browser}();var ie=browser.ie,webkit=browser.webkit,gecko=browser.gecko,opera=browser.opera;var utils=UM.utils={each:function(obj,iterator,context){if(obj==null)return;if(obj.length===+obj.length){for(var i=0,l=obj.length;i<l;i++){if(iterator.call(context,obj[i],i,obj)===false)return false}}else{for(var key in obj){if(obj.hasOwnProperty(key)){if(iterator.call(context,obj[key],key,obj)===false)return false}}}},makeInstance:function(obj){var noop=new Function();noop.prototype=obj;obj=new noop;noop.prototype=null;return obj},extend:function(t,s,b){if(s){for(var k in s){if(!b||!t.hasOwnProperty(k)){t[k]=s[k]}}}return t},extend2:function(t){var a=arguments;for(var i=1;i<a.length;i++){var x=a[i];for(var k in x){if(!t.hasOwnProperty(k)){t[k]=x[k]}}}return t},inherits:function(subClass,superClass){var oldP=subClass.prototype,newP=utils.makeInstance(superClass.prototype);utils.extend(newP,oldP,true);subClass.prototype=newP;return(newP.constructor=subClass)},bind:function(fn,context){return function(){return fn.apply(context,arguments)}},defer:function(fn,delay,exclusion){var timerID;return function(){if(exclusion){clearTimeout(timerID)}timerID=setTimeout(fn,delay)}},indexOf:function(array,item,start){var index=-1;start=this.isNumber(start)?start:0;this.each(array,function(v,i){if(i>=start&&v===item){index=i;return false}});return index},removeItem:function(array,item){for(var i=0,l=array.length;i<l;i++){if(array[i]===item){array.splice(i,1);i--}}},trim:function(str){return str.replace(/(^[ \t\n\r]+)|([ \t\n\r]+$)/g,'')},listToMap:function(list){if(!list)return{};list=utils.isArray(list)?list:list.split(',');for(var i=0,ci,obj={};ci=list[i++];){obj[ci.toUpperCase()]=obj[ci]=1}return obj},unhtml:function(str,reg){return str?str.replace(reg||/&<">'?/g,function(a,b){if(b){return a}else{return{'<':'<','&':'&','"':'"','>':'>',"'":'''}[a]}}):''},html:function(str){return str?str.replace(/&((g|l|quo)t|amp|#39);/g,function(m){return{'<':'<','&':'&','"':'"','>':'>',''':"'"}[m]}):''},cssStyleToDomStyle:function(){var test=document.createElement('div').style,cache={'float':test.cssFloat!=undefined?'cssFloat':test.styleFloat!=undefined?'styleFloat':'float'};return function(cssName){return cache[cssName]||(cache[cssName]=cssName.toLowerCase().replace(/-./g,function(match){return match.charAt(1).toUpperCase()}))}}(),loadFile:function(){var tmpList=[];function getItem(doc,obj){try{for(var i=0,ci;ci=tmpList[i++];){if(ci.doc===doc&&ci.url==(obj.src||obj.href)){return ci}}}catch(e){return null}}return function(doc,obj,fn){var item=getItem(doc,obj);if(item){if(item.ready){fn&&fn()}else{item.funs.push(fn)}return}tmpList.push({doc:doc,url:obj.src||obj.href,funs:[fn]});if(!doc.body){var html=[];for(var p in obj){if(p=='tag')continue;html.push(p+'="'+obj[p]+'"')}doc.write('<'+obj.tag+' '+html.join(' ')+' ></'+obj.tag+'>');return}if(obj.id&&doc.getElementById(obj.id)){return}var element=doc.createElement(obj.tag);delete obj.tag;for(var p in obj){element.setAttribute(p,obj[p])}element.onload=element.onreadystatechange=function(){if(!this.readyState||/loaded|complete/.test(this.readyState)){item=getItem(doc,obj);if(item.funs.length>0){item.ready=1;for(var fi;fi=item.funs.pop();){fi()}}element.onload=element.onreadystatechange=null}};element.onerror=function(){throw Error('The load '+(obj.href||obj.src)+' fails,check the url settings of file umeditor.config.js ')};doc.getElementsByTagName("head")[0].appendChild(element)}}(),isEmptyObject:function(obj){if(obj==null)return true;if(this.isArray(obj)||this.isString(obj))return obj.length===0;for(var key in obj)if(obj.hasOwnProperty(key))return false;return true},fixColor:function(name,value){if(/color/i.test(name)&&/rgba?/.test(value)){var array=value.split(",");if(array.length>3)return"";value="#";for(var i=0,color;color=array[i++];){color=parseInt(color.replace(/[^\d]/gi,''),10).toString(16);value+=color.length==1?"0"+color:color}value=value.toUpperCase()}return value},clone:function(source,target){var tmp;target=target||{};for(var i in source){if(source.hasOwnProperty(i)){tmp=source[i];if(typeof tmp=='object'){target[i]=utils.isArray(tmp)?[]:{};utils.clone(source[i],target[i])}else{target[i]=tmp}}}return target},transUnitToPx:function(val){if(!/(pt|cm)/.test(val)){return val}var unit;val.replace(/([\d.]+)(\w+)/,function(str,v,u){val=v;unit=u});switch(unit){case'cm':val=parseFloat(val)25;break;case'pt':val=Math.round(parseFloat(val)*96/72)}return val+(val?'px':'')},cssRule:browser.ie&&browser.version!=11?function(key,style,doc){var indexList,index;doc=doc||document;if(doc.indexList){indexList=doc.indexList}else{indexList=doc.indexList={}}var sheetStyle;if(!indexList[key]){if(style===undefined){return''}sheetStyle=doc.createStyleSheet('',index=doc.styleSheets.length);indexList[key]=index}else{sheetStyle=doc.styleSheets[indexList[key]]}if(style===undefined){return sheetStyle.cssText}sheetStyle.cssText=style||''}:function(key,style,doc){doc=doc||document;var head=doc.getElementsByTagName('head')[0],node;if(!(node=doc.getElementById(key))){if(style===undefined){return''}node=doc.createElement('style');node.id=key;head.appendChild(node)}if(style===undefined){return node.innerHTML}if(style!==''){node.innerHTML=style}else{head.removeChild(node)}}};utils.each(['String','Function','Array','Number','RegExp','Object'],function(v){UM.utils['is'+v]=function(obj){return Object.prototype.toString.apply(obj)=='[object '+v+']'}});var EventBase=UM.EventBase=function(){};EventBase.prototype={addListener:function(types,listener){types=utils.trim(types).split(' ');for(var i=0,ti;ti=types[i++];){getListener(this,ti,true).push(listener)}},removeListener:function(types,listener){types=utils.trim(types).split(' ');for(var i=0,ti;ti=types[i++];){utils.removeItem(getListener(this,ti)||[],listener)}},fireEvent:function(){var types=arguments[0];types=utils.trim(types).split(' ');for(var i=0,ti;ti=types[i++];){var listeners=getListener(this,ti),r,t,k;if(listeners){k=listeners.length;while(k--){if(!listeners[k])continue;t=listeners[k].apply(this,arguments);if(t===true){return t}if(t!==undefined){r=t}}}if(t=this['on'+ti.toLowerCase()]){r=t.apply(this,arguments)}}return r}};function getListener(obj,type,force){var allListeners;type=type.toLowerCase();return((allListeners=(obj.allListeners||force&&(obj.allListeners={})))&&(allListeners[type]||force&&(allListeners[type]=[])))}var dtd=dom.dtd=(function(){function (s){for(var k in s){s[k.toUpperCase()]=s[k]}return s}var X=utils.extend2;var A=({isindex:1,fieldset:1}),B=({input:1,button:1,select:1,textarea:1,label:1}),C=X(({a:1}),B),D=X({iframe:1},C),E=({hr:1,ul:1,menu:1,div:1,blockquote:1,noscript:1,table:1,center:1,address:1,dir:1,pre:1,h5:1,dl:1,h4:1,noframes:1,h6:1,ol:1,h1:1,h3:1,h2:1}),F=({ins:1,del:1,script:1,style:1}),G=X(({b:1,acronym:1,bdo:1,'var':1,'#':1,abbr:1,code:1,br:1,i:1,cite:1,kbd:1,u:1,strike:1,s:1,tt:1,strong:1,q:1,samp:1,em:1,dfn:1,span:1}),F),H=X(({sub:1,img:1,embed:1,object:1,sup:1,basefont:1,map:1,applet:1,font:1,big:1,small:1}),G),I=X(({p:1}),H),J=X(({iframe:1}),H,B),K=({img:1,embed:1,noscript:1,br:1,kbd:1,center:1,button:1,basefont:1,h5:1,h4:1,samp:1,h6:1,ol:1,h1:1,h3:1,h2:1,form:1,font:1,'#':1,select:1,menu:1,ins:1,abbr:1,label:1,code:1,table:1,script:1,cite:1,input:1,iframe:1,strong:1,textarea:1,noframes:1,big:1,small:1,span:1,hr:1,sub:1,bdo:1,'var':1,div:1,object:1,sup:1,strike:1,dir:1,map:1,dl:1,applet:1,del:1,isindex:1,fieldset:1,ul:1,b:1,acronym:1,a:1,blockquote:1,i:1,u:1,s:1,tt:1,address:1,q:1,pre:1,p:1,em:1,dfn:1}),L=X(({a:0}),J),M=({tr:1}),N=({'#':1}),O=X(({param:1}),K),P=X(({form:1}),A,D,E,I),Q=({li:1,ol:1,ul:1}),R=({style:1,script:1}),S=({base:1,link:1,meta:1,title:1}),T=X(S,R),U=({head:1,body:1}),V=({html:1});var block=({address:1,blockquote:1,center:1,dir:1,div:1,dl:1,fieldset:1,form:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,hr:1,isindex:1,menu:1,noframes:1,ol:1,p:1,pre:1,table:1,ul:1}),empty=({area:1,base:1,basefont:1,br:1,col:1,command:1,dialog:1,embed:1,hr:1,img:1,input:1,isindex:1,keygen:1,link:1,meta:1,param:1,source:1,track:1,wbr:1});return ({$nonBodyContent:X(V,U,S),$block:block,$inline:L,$inlineWithA:X(({a:1}),L),$body:X(({script:1,style:1}),block),$cdata:({script:1,style:1}),$empty:empty,$nonChild:({iframe:1,textarea:1}),$listItem:({dd:1,dt:1,li:1}),$list:({ul:1,ol:1,dl:1}),$isNotEmpty:({table:1,ul:1,ol:1,dl:1,iframe:1,area:1,base:1,col:1,hr:1,img:1,embed:1,input:1,link:1,meta:1,param:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1}),$removeEmpty:({a:1,abbr:1,acronym:1,address:1,b:1,bdo:1,big:1,cite:1,code:1,del:1,dfn:1,em:1,font:1,i:1,ins:1,label:1,kbd:1,q:1,s:1,samp:1,small:1,span:1,strike:1,strong:1,sub:1,sup:1,tt:1,u:1,'var':1}),$removeEmptyBlock:({'p':1,'div':1}),$tableContent:({caption:1,col:1,colgroup:1,tbody:1,td:1,tfoot:1,th:1,thead:1,tr:1,table:1}),$notTransContent:({pre:1,script:1,style:1,textarea:1}),html:U,head:T,style:N,script:N,body:P,base:{},link:{},meta:{},title:N,col:{},tr:({td:1,th:1}),img:{},embed:{},colgroup:({thead:1,col:1,tbody:1,tr:1,tfoot:1}),noscript:P,td:P,br:{},th:P,center:P,kbd:L,button:X(I,E),basefont:{},h5:L,h4:L,samp:L,h6:L,ol:Q,h1:L,h3:L,option:N,h2:L,form:X(A,D,E,I),select:({optgroup:1,option:1}),font:L,ins:L,menu:Q,abbr:L,label:L,table:({thead:1,col:1,tbody:1,tr:1,colgroup:1,caption:1,tfoot:1}),code:L,tfoot:M,cite:L,li:P,input:{},iframe:P,strong:L,textarea:N,noframes:P,big:L,small:L,span:({'#':1,br:1,b:1,strong:1,u:1,i:1,em:1,sub:1,sup:1,strike:1,span:1}),hr:L,dt:L,sub:L,optgroup:({option:1}),param:{},bdo:L,'var':L,div:P,object:O,sup:L,dd:P,strike:L,area:{},dir:Q,map:X(({area:1,form:1,p:1}),A,F,E),applet:O,dl:({dt:1,dd:1}),del:L,isindex:{},fieldset:X(({legend:1}),K),thead:M,ul:Q,acronym:L,b:L,a:X(({a:1}),J),blockquote:X(({td:1,tr:1,tbody:1,li:1}),P),caption:L,i:L,u:L,tbody:M,s:L,address:X(D,I),tt:L,legend:L,q:L,pre:X(G,C),p:X(_({'a':1}),L),em:L,dfn:L})})();function getDomNode(node,start,ltr,startFromChild,fn,guard){var tmpNode=startFromChild&&node[start],parent;!tmpNode&&(tmpNode=node[ltr]);while(!tmpNode&&(parent=(parent||node).parentNode)){if(parent.tagName=='BODY'||guard&&!guard(parent)){return null}tmpNode=parent[ltr]}if(tmpNode&&fn&&!fn(tmpNode)){return getDomNode(tmpNode,start,ltr,false,fn)}return tmpNode}var attrFix=ie&&browser.version<9?{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder"}:{tabindex:"tabIndex",readonly:"readOnly"},styleBlock=utils.listToMap(['-webkit-box','-moz-box','block','list-item','table','table-row-group','table-header-group','table-footer-group','table-row','table-column-group','table-column','table-cell','table-caption']);var domUtils=dom.domUtils={NODE_ELEMENT:1,NODE_DOCUMENT:9,NODE_TEXT:3,NODE_COMMENT:8,NODE_DOCUMENT_FRAGMENT:11,POSITION_IDENTICAL:0,POSITION_DISCONNECTED:1,POSITION_FOLLOWING:2,POSITION_PRECEDING:4,POSITION_IS_CONTAINED:8,POSITION_CONTAINS:16,fillChar:ie&&browser.version=='6'?'\ufeff':'\u200B',keys:{8:1,46:1,16:1,17:1,18:1,37:1,38:1,39:1,40:1,13:1},breakParent:function(node,parent){var tmpNode,parentClone=node,clone=node,leftNodes,rightNodes;do{parentClone=parentClone.parentNode;if(leftNodes){tmpNode=parentClone.cloneNode(false);tmpNode.appendChild(leftNodes);leftNodes=tmpNode;tmpNode=parentClone.cloneNode(false);tmpNode.appendChild(rightNodes);rightNodes=tmpNode}else{leftNodes=parentClone.cloneNode(false);rightNodes=leftNodes.cloneNode(false)}while(tmpNode=clone.previousSibling){leftNodes.insertBefore(tmpNode,leftNodes.firstChild)}while(tmpNode=clone.nextSibling){rightNodes.appendChild(tmpNode)}clone=parentClone}while(parent!==parentClone);tmpNode=parent.parentNode;tmpNode.insertBefore(leftNodes,parent);tmpNode.insertBefore(rightNodes,parent);tmpNode.insertBefore(node,rightNodes);domUtils.remove(parent);return node},trimWhiteTextNode:function(node){function remove(dir){var child;while((child=node[dir])&&child.nodeType==3&&domUtils.isWhitespace(child)){node.removeChild(child)}}remove('firstChild');remove('lastChild')},getPosition:function(nodeA,nodeB){if(nodeA===nodeB){return 0}var node,parentsA=[nodeA],parentsB=[nodeB];node=nodeA;while(node=node.parentNode){if(node===nodeB){return 10}parentsA.push(node)}node=nodeB;while(node=node.parentNode){if(node===nodeA){return 20}parentsB.push(node)}parentsA.reverse();parentsB.reverse();if(parentsA[0]!==parentsB[0]){return 1}var i=-1;while(i++,parentsA[i]===parentsB[i]){}nodeA=parentsA[i];nodeB=parentsB[i];while(nodeA=nodeA.nextSibling){if(nodeA===nodeB){return 4}}return 2},getNodeIndex:function(node,ignoreTextNode){var preNode=node,i=0;while(preNode=preNode.previousSibling){if(ignoreTextNode&&preNode.nodeType==3){if(preNode.nodeType!=preNode.nextSibling.nodeType){i++}continue}i++}return i},inDoc:function(node,doc){return domUtils.getPosition(node,doc)==10},findParent:function(node,filterFn,includeSelf){if(node&&!domUtils.isBody(node)){node=includeSelf?node:node.parentNode;while(node){if(!filterFn||filterFn(node)||domUtils.isBody(node)){return filterFn&&!filterFn(node)&&domUtils.isBody(node)?null:node}node=node.parentNode}}return null},findParentByTagName:function(node,tagNames,includeSelf,excludeFn){tagNames=utils.listToMap(utils.isArray(tagNames)?tagNames:[tagNames]);return domUtils.findParent(node,function(node){return tagNames[node.tagName]&&!(excludeFn&&excludeFn(node))},includeSelf)},findParents:function(node,includeSelf,filterFn,closerFirst){var parents=includeSelf&&(filterFn&&filterFn(node)||!filterFn)?[node]:[];while(node=domUtils.findParent(node,filterFn)){parents.push(node)}return closerFirst?parents:parents.reverse()},insertAfter:function(node,newNode){return node.parentNode.insertBefore(newNode,node.nextSibling)},remove:function(node,keepChildren){var parent=node.parentNode,child;if(parent){if(keepChildren&&node.hasChildNodes()){while(child=node.firstChild){parent.insertBefore(child,node)}}parent.removeChild(node)}return node},getNextDomNode:function(node,startFromChild,filterFn,guard){return getDomNode(node,'firstChild','nextSibling',startFromChild,filterFn,guard)},getPreDomNode:function(node,startFromChild,filterFn,guard){return getDomNode(node,'lastChild','previousSibling',startFromChild,filterFn,guard)},isBookmarkNode:function(node){return node.nodeType==1&&node.id&&/^_baidubookmark/i.test(node.id)},getWindow:function(node){var doc=node.ownerDocument||node;return doc.defaultView||doc.parentWindow},getCommonAncestor:function(nodeA,nodeB){if(nodeA===nodeB)return nodeA;var parentsA=[nodeA],parentsB=[nodeB],parent=nodeA,i=-1;while(parent=parent.parentNode){if(parent===nodeB){return parent}parentsA.push(parent)}parent=nodeB;while(parent=parent.parentNode){if(parent===nodeA)return parent;parentsB.push(parent)}parentsA.reverse();parentsB.reverse();while(i++,parentsA[i]===parentsB[i]){}return i==0?null:parentsA[i-1]},clearEmptySibling:function(node,ignoreNext,ignorePre){function clear(next,dir){var tmpNode;while(next&&!domUtils.isBookmarkNode(next)&&(domUtils.isEmptyInlineElement(next)||!new RegExp('[^\t\n\r'+domUtils.fillChar+']').test(next.nodeValue))){tmpNode=next[dir];domUtils.remove(next);next=tmpNode}}!ignoreNext&&clear(node.nextSibling,'nextSibling');!ignorePre&&clear(node.previousSibling,'previousSibling')},split:function(node,offset){var doc=node.ownerDocument;if(browser.ie&&offset==node.nodeValue.length){var next=doc.createTextNode('');return domUtils.insertAfter(node,next)}var retval=node.splitText(offset);if(browser.ie8){var tmpNode=doc.createTextNode('');domUtils.insertAfter(retval,tmpNode);domUtils.remove(tmpNode)}return retval},isWhitespace:function(node){return!new RegExp('[^ \t\n\r'+domUtils.fillChar+']').test(node.nodeValue)},getXY:function(element){var x=0,y=0;while(element.offsetParent){y+=element.offsetTop;x+=element.offsetLeft;element=element.offsetParent}return{'x':x,'y':y}},isEmptyInlineElement:function(node){if(node.nodeType!=1||!dtd.$removeEmpty[node.tagName]){return 0}node=node.firstChild;while(node){if(domUtils.isBookmarkNode(node)){return 0}if(node.nodeType==1&&!domUtils.isEmptyInlineElement(node)||node.nodeType==3&&!domUtils.isWhitespace(node)){return 0}node=node.nextSibling}return 1},isBlockElm:function(node){return node.nodeType==1&&(dtd.$block[node.tagName]||styleBlock[domUtils.getComputedStyle(node,'display')])&&!dtd.$nonChild[node.tagName]},getElementsByTagName:function(node,name,filter){if(filter&&utils.isString(filter)){var className=filter;filter=function(node){var result=false;$.each(utils.trim(className).replace(/[ ]{2,}/g,' ').split(' '),function(i,v){if($(node).hasClass(v)){result=true;return false}})return result}}name=utils.trim(name).replace(/[ ]{2,}/g,' ').split(' ');var arr=[];for(var n=0,ni;ni=name[n++];){var list=node.getElementsByTagName(ni);for(var i=0,ci;ci=list[i++];){if(!filter||filter(ci))arr.push(ci)}}return arr},unSelectable:ie&&browser.ie9below||browser.opera?function(node){node.onselectstart=function(){return false};node.onclick=node.onkeyup=node.onkeydown=function(){return false};node.unselectable='on';node.setAttribute("unselectable","on");for(var i=0,ci;ci=node.all[i++];){switch(ci.tagName.toLowerCase()){case'iframe':case'textarea':case'input':case'select':break;default:ci.unselectable='on';node.setAttribute("unselectable","on")}}}:function(node){node.style.MozUserSelect=node.style.webkitUserSelect=node.style.msUserSelect=node.style.KhtmlUserSelect='none'},removeAttributes:function(node,attrNames){attrNames=utils.isArray(attrNames)?attrNames:utils.trim(attrNames).replace(/[ ]{2,}/g,' ').split(' ');for(var i=0,ci;ci=attrNames[i++];){ci=attrFix[ci]||ci;switch(ci){case'className':node[ci]='';break;case'style':node.style.cssText='';!browser.ie&&node.removeAttributeNode(node.getAttributeNode('style'))}node.removeAttribute(ci)}},createElement:function(doc,tag,attrs){return domUtils.setAttributes(doc.createElement(tag),attrs)},setAttributes:function(node,attrs){for(var attr in attrs){if(attrs.hasOwnProperty(attr)){var value=attrs[attr];switch(attr){case'class':node.className=value;break;case'style':node.style.cssText=node.style.cssText+";"+value;break;case'innerHTML':node[attr]=value;break;case'value':node.value=value;break;default:node.setAttribute(attrFix[attr]||attr,value)}}}return node},getComputedStyle:function(element,styleName){return utils.transUnitToPx(utils.fixColor(styleName,$(element).css(styleName)))},preventDefault:function(evt){evt.preventDefault?evt.preventDefault():(evt.returnValue=false)},removeStyle:function(element,name){if(browser.ie){if(name=='color'){name='(^|;)'+name}element.style.cssText=element.style.cssText.replace(new RegExp(name+'[^:]:[^;]+;?','ig'),'')}else{if(element.style.removeProperty){element.style.removeProperty(name)}else{element.style.removeAttribute(utils.cssStyleToDomStyle(name))}}if(!element.style.cssText){domUtils.removeAttributes(element,['style'])}},getStyle:function(element,name){var value=element.style[utils.cssStyleToDomStyle(name)];return utils.fixColor(name,value)},setStyle:function(element,name,value){element.style[utils.cssStyleToDomStyle(name)]=value;if(!utils.trim(element.style.cssText)){this.removeAttributes(element,'style')}},removeDirtyAttr:function(node){for(var i=0,ci,nodes=node.getElementsByTagName('');ci=nodes[i++];){ci.removeAttribute('_moz_dirty')}node.removeAttribute('_moz_dirty')},getChildCount:function(node,fn){var count=0,first=node.firstChild;fn=fn||function(){return 1};while(first){if(fn(first)){count++}first=first.nextSibling}return count},isEmptyNode:function(node){return!node.firstChild||domUtils.getChildCount(node,function(node){return!domUtils.isBr(node)&&!domUtils.isBookmarkNode(node)&&!domUtils.isWhitespace(node)})==0},isBr:function(node){return node.nodeType==1&&node.tagName=='BR'},isEmptyBlock:function(node,reg){if(node.nodeType!=1)return 0;reg=reg||new RegExp('[ \t\r\n'+domUtils.fillChar+']','g');if(node[browser.ie?'innerText':'textContent'].replace(reg,'').length>0){return 0}for(var n in dtd.$isNotEmpty){if(node.getElementsByTagName(n).length){return 0}}return 1},isCustomeNode:function(node){return node.nodeType==1&&node.getAttribute('_ue_customnode')},fillNode:function(doc,node){var tmpNode=browser.ie?doc.createTextNode(domUtils.fillChar):doc.createElement('br');node.innerHTML='';node.appendChild(tmpNode)},isBoundaryNode:function(node,dir){var tmp;while(!domUtils.isBody(node)){tmp=node;node=node.parentNode;if(tmp!==node[dir]){return false}}return true},isFillChar:function(node,isInStart){return node.nodeType==3&&!node.nodeValue.replace(new RegExp((isInStart?'^':'')+domUtils.fillChar),'').length},isBody:function(node){return $(node).hasClass('edui-body-container')}};var fillCharReg=new RegExp(domUtils.fillChar,'g');(function(){var guid=0,fillChar=domUtils.fillChar,fillData;function updateCollapse(range){range.collapsed=range.startContainer&&range.endContainer&&range.startContainer===range.endContainer&&range.startOffset==range.endOffset}function selectOneNode(rng){return!rng.collapsed&&rng.startContainer.nodeType==1&&rng.startContainer===rng.endContainer&&rng.endOffset-rng.startOffset==1}function setEndPoint(toStart,node,offset,range){if(node.nodeType==1&&(dtd.$empty[node.tagName]||dtd.$nonChild[node.tagName])){offset=domUtils.getNodeIndex(node)+(toStart?0:1);node=node.parentNode}if(toStart){range.startContainer=node;range.startOffset=offset;if(!range.endContainer){range.collapse(true)}}else{range.endContainer=node;range.endOffset=offset;if(!range.startContainer){range.collapse(false)}}updateCollapse(range);return range}var Range=dom.Range=function(document,body){var me=this;me.startContainer=me.startOffset=me.endContainer=me.endOffset=null;me.document=document;me.collapsed=true;me.body=body};function removeFillData(doc,excludeNode){try{if(fillData&&domUtils.inDoc(fillData,doc)){if(!fillData.nodeValue.replace(fillCharReg,'').length){var tmpNode=fillData.parentNode;domUtils.remove(fillData);while(tmpNode&&domUtils.isEmptyInlineElement(tmpNode)&&(browser.safari?!(domUtils.getPosition(tmpNode,excludeNode)&domUtils.POSITION_CONTAINS):!tmpNode.contains(excludeNode))){fillData=tmpNode.parentNode;domUtils.remove(tmpNode);tmpNode=fillData}}else{fillData.nodeValue=fillData.nodeValue.replace(fillCharReg,'')}}}catch(e){}}function mergeSibling(node,dir){var tmpNode;node=node[dir];while(node&&domUtils.isFillChar(node)){tmpNode=node[dir];domUtils.remove(node);node=tmpNode}}function execContentsAction(range,action){var start=range.startContainer,end=range.endContainer,startOffset=range.startOffset,endOffset=range.endOffset,doc=range.document,frag=doc.createDocumentFragment(),tmpStart,tmpEnd;if(start.nodeType==1){start=start.childNodes[startOffset]||(tmpStart=start.appendChild(doc.createTextNode('')))}if(end.nodeType==1){end=end.childNodes[endOffset]||(tmpEnd=end.appendChild(doc.createTextNode('')))}if(start===end&&start.nodeType==3){frag.appendChild(doc.createTextNode(start.substringData(startOffset,endOffset-startOffset)));if(action){start.deleteData(startOffset,endOffset-startOffset);range.collapse(true)}return frag}var current,currentLevel,clone=frag,startParents=domUtils.findParents(start,true),endParents=domUtils.findParents(end,true);for(var i=0;startParents[i]==endParents[i];){i++}for(var j=i,si;si=startParents[j];j++){current=si.nextSibling;if(si==start){if(!tmpStart){if(range.startContainer.nodeType==3){clone.appendChild(doc.createTextNode(start.nodeValue.slice(startOffset)));if(action){start.deleteData(startOffset,start.nodeValue.length-startOffset)}}else{clone.appendChild(!action?start.cloneNode(true):start)}}}else{currentLevel=si.cloneNode(false);clone.appendChild(currentLevel)}while(current){if(current===end||current===endParents[j]){break}si=current.nextSibling;clone.appendChild(!action?current.cloneNode(true):current);current=si}clone=currentLevel}clone=frag;if(!startParents[i]){clone.appendChild(startParents[i-1].cloneNode(false));clone=clone.firstChild}for(var j=i,ei;ei=endParents[j];j++){current=ei.previousSibling;if(ei==end){if(!tmpEnd&&range.endContainer.nodeType==3){clone.appendChild(doc.createTextNode(end.substringData(0,endOffset)));if(action){end.deleteData(0,endOffset)}}}else{currentLevel=ei.cloneNode(false);clone.appendChild(currentLevel)}if(j!=i||!startParents[i]){while(current){if(current===start){break}ei=current.previousSibling;clone.insertBefore(!action?current.cloneNode(true):current,clone.firstChild);current=ei}}clone=currentLevel}if(action){range.setStartBefore(!endParents[i]?endParents[i-1]:!startParents[i]?startParents[i-1]:endParents[i]).collapse(true)}tmpStart&&domUtils.remove(tmpStart);tmpEnd&&domUtils.remove(tmpEnd);return frag}Range.prototype={deleteContents:function(){var txt;if(!this.collapsed){execContentsAction(this,1)}if(browser.webkit){txt=this.startContainer;if(txt.nodeType==3&&!txt.nodeValue.length){this.setStartBefore(txt).collapse(true);domUtils.remove(txt)}}return this},inFillChar:function(){var start=this.startContainer;if(this.collapsed&&start.nodeType==3&&start.nodeValue.replace(new RegExp('^'+domUtils.fillChar),'').length+1==start.nodeValue.length){return true}return false},setStart:function(node,offset){return setEndPoint(true,node,offset,this)},setEnd:function(node,offset){return setEndPoint(false,node,offset,this)},setStartAfter:function(node){return this.setStart(node.parentNode,domUtils.getNodeIndex(node)+1)},setStartBefore:function(node){return this.setStart(node.parentNode,domUtils.getNodeIndex(node))},setEndAfter:function(node){return this.setEnd(node.parentNode,domUtils.getNodeIndex(node)+1)},setEndBefore:function(node){return this.setEnd(node.parentNode,domUtils.getNodeIndex(node))},setStartAtFirst:function(node){return this.setStart(node,0)},setStartAtLast:function(node){return this.setStart(node,node.nodeType==3?node.nodeValue.length:node.childNodes.length)},setEndAtFirst:function(node){return this.setEnd(node,0)},setEndAtLast:function(node){return this.setEnd(node,node.nodeType==3?node.nodeValue.length:node.childNodes.length)},selectNode:function(node){return this.setStartBefore(node).setEndAfter(node)},selectNodeContents:function(node){return this.setStart(node,0).setEndAtLast(node)},cloneRange:function(){var me=this;return new Range(me.document).setStart(me.startContainer,me.startOffset).setEnd(me.endContainer,me.endOffset)},collapse:function(toStart){var me=this;if(toStart){me.endContainer=me.startContainer;me.endOffset=me.startOffset}else{me.startContainer=me.endContainer;me.startOffset=me.endOffset}me.collapsed=true;return me},shrinkBoundary:function(ignoreEnd){var me=this,child,collapsed=me.collapsed;function check(node){return node.nodeType==1&&!domUtils.isBookmarkNode(node)&&!dtd.$empty[node.tagName]&&!dtd.$nonChild[node.tagName]}while(me.startContainer.nodeType==1&&(child=me.startContainer.childNodes[me.startOffset])&&check(child)){me.setStart(child,0)}if(collapsed){return me.collapse(true)}if(!ignoreEnd){while(me.endContainer.nodeType==1&&me.endOffset>0&&(child=me.endContainer.childNodes[me.endOffset-1])&&check(child)){me.setEnd(child,child.childNodes.length)}}return me},trimBoundary:function(ignoreEnd){this.txtToElmBoundary();var start=this.startContainer,offset=this.startOffset,collapsed=this.collapsed,end=this.endContainer;if(start.nodeType==3){if(offset==0){this.setStartBefore(start)}else{if(offset>=start.nodeValue.length){this.setStartAfter(start)}else{var textNode=domUtils.split(start,offset);if(start===end){this.setEnd(textNode,this.endOffset-offset)}else if(start.parentNode===end){this.endOffset+=1}this.setStartBefore(textNode)}}if(collapsed){return this.collapse(true)}}if(!ignoreEnd){offset=this.endOffset;end=this.endContainer;if(end.nodeType==3){if(offset==0){this.setEndBefore(end)}else{offset<end.nodeValue.length&&domUtils.split(end,offset);this.setEndAfter(end)}}}return this},txtToElmBoundary:function(ignoreCollapsed){function adjust(r,c){var container=r[c+'Container'],offset=r[c+'Offset'];if(container.nodeType==3){if(!offset){r'set'+c.replace(/(\w)/,function(a){return a.toUpperCase()})+'Before'}else if(offset>=container.nodeValue.length){r'set'+c.replace(/(\w)/,function(a){return a.toUpperCase()})+'After'}}}if(ignoreCollapsed||!this.collapsed){adjust(this,'start');adjust(this,'end')}return this},insertNode:function(node){var first=node,length=1;if(node.nodeType==11){first=node.firstChild;length=node.childNodes.length}this.trimBoundary(true);var start=this.startContainer,offset=this.startOffset;var nextNode=start.childNodes[offset];if(nextNode){start.insertBefore(node,nextNode)}else{start.appendChild(node)}if(first.parentNode===this.endContainer){this.endOffset=this.endOffset+length}return this.setStartBefore(first)},setCursor:function(toEnd,noFillData){return this.collapse(!toEnd).select(noFillData)},createBookmark:function(serialize,same){var endNode,startNode=this.document.createElement('span');startNode.style.cssText='display:none;line-height:0px;';startNode.appendChild(this.document.createTextNode('\u200D'));startNode.id='_baidu_bookmarkstart'+(same?'':guid++);if(!this.collapsed){endNode=startNode.cloneNode(true);endNode.id='_baidu_bookmarkend'+(same?'':guid++)}this.insertNode(startNode);if(endNode){this.collapse().insertNode(endNode).setEndBefore(endNode)}this.setStartAfter(startNode);return{start:serialize?startNode.id:startNode,end:endNode?serialize?endNode.id:endNode:null,id:serialize}},moveToBookmark:function(bookmark){var start=bookmark.id?this.document.getElementById(bookmark.start):bookmark.start,end=bookmark.end&&bookmark.id?this.document.getElementById(bookmark.end):bookmark.end;this.setStartBefore(start);domUtils.remove(start);if(end){this.setEndBefore(end);domUtils.remove(end)}else{this.collapse(true)}return this},adjustmentBoundary:function(){if(!this.collapsed){while(!domUtils.isBody(this.startContainer)&&this.startOffset==this.startContainer[this.startContainer.nodeType==3?'nodeValue':'childNodes'].length&&this.startContainer[this.startContainer.nodeType==3?'nodeValue':'childNodes'].length){this.setStartAfter(this.startContainer)}while(!domUtils.isBody(this.endContainer)&&!this.endOffset&&this.endContainer[this.endContainer.nodeType==3?'nodeValue':'childNodes'].length){this.setEndBefore(this.endContainer)}}return this},getClosedNode:function(){var node;if(!this.collapsed){var range=this.cloneRange().adjustmentBoundary().shrinkBoundary();if(selectOneNode(range)){var child=range.startContainer.childNodes[range.startOffset];if(child&&child.nodeType==1&&(dtd.$empty[child.tagName]||dtd.$nonChild[child.tagName])){node=child}}}return node},select:browser.ie?function(noFillData,textRange){var nativeRange;if(!this.collapsed)this.shrinkBoundary();var node=this.getClosedNode();if(node&&!textRange){try{nativeRange=this.document.body.createControlRange();nativeRange.addElement(node);nativeRange.select()}catch(e){}return this}var bookmark=this.createBookmark(),start=bookmark.start,end;nativeRange=this.document.body.createTextRange();nativeRange.moveToElementText(start);nativeRange.moveStart('character',1);if(!this.collapsed){var nativeRangeEnd=this.document.body.createTextRange();end=bookmark.end;nativeRangeEnd.moveToElementText(end);nativeRange.setEndPoint('EndToEnd',nativeRangeEnd)}else{if(!noFillData&&this.startContainer.nodeType!=3){var tmpText=this.document.createTextNode(fillChar),tmp=this.document.createElement('span');tmp.appendChild(this.document.createTextNode(fillChar));start.parentNode.insertBefore(tmp,start);start.parentNode.insertBefore(tmpText,start);removeFillData(this.document,tmpText);fillData=tmpText;mergeSibling(tmp,'previousSibling');mergeSibling(start,'nextSibling');nativeRange.moveStart('character',-1);nativeRange.collapse(true)}}this.moveToBookmark(bookmark);tmp&&domUtils.remove(tmp);try{nativeRange.select()}catch(e){}return this}:function(notInsertFillData){function checkOffset(rng){function check(node,offset,dir){if(node.nodeType==3&&node.nodeValue.length<offset){rng[dir+'Offset']=node.nodeValue.length}}check(rng.startContainer,rng.startOffset,'start');check(rng.endContainer,rng.endOffset,'end')}var win=domUtils.getWindow(this.document),sel=win.getSelection(),txtNode;browser.gecko?this.body.focus():win.focus();if(sel){sel.removeAllRanges();if(this.collapsed&&!notInsertFillData){var start=this.startContainer,child=start;if(start.nodeType==1){child=start.childNodes[this.startOffset]}if(!(start.nodeType==3&&this.startOffset)&&(child?(!child.previousSibling||child.previousSibling.nodeType!=3):(!start.lastChild||start.lastChild.nodeType!=3))){txtNode=this.document.createTextNode(fillChar);this.insertNode(txtNode);removeFillData(this.document,txtNode);mergeSibling(txtNode,'previousSibling');mergeSibling(txtNode,'nextSibling');fillData=txtNode;this.setStart(txtNode,browser.webkit?1:0).collapse(true)}}var nativeRange=this.document.createRange();if(this.collapsed&&browser.opera&&this.startContainer.nodeType==1){var child=this.startContainer.childNodes[this.startOffset];if(!child){child=this.startContainer.lastChild;if(child&&domUtils.isBr(child)){this.setStartBefore(child).collapse(true)}}else{while(child&&domUtils.isBlockElm(child)){if(child.nodeType==1&&child.childNodes[0]){child=child.childNodes[0]}else{break}}child&&this.setStartBefore(child).collapse(true)}}checkOffset(this);nativeRange.setStart(this.startContainer,this.startOffset);nativeRange.setEnd(this.endContainer,this.endOffset);sel.addRange(nativeRange)}return this},createAddress:function(ignoreEnd,ignoreTxt){var addr={},me=this;function getAddress(isStart){var node=isStart?me.startContainer:me.endContainer;var parents=domUtils.findParents(node,true,function(node){return!domUtils.isBody(node)}),addrs=[];for(var i=0,ci;ci=parents[i++];){addrs.push(domUtils.getNodeIndex(ci,ignoreTxt))}var firstIndex=0;if(ignoreTxt){if(node.nodeType==3){var tmpNode=node.previousSibling;while(tmpNode&&tmpNode.nodeType==3){firstIndex+=tmpNode.nodeValue.replace(fillCharReg,'').length;tmpNode=tmpNode.previousSibling}firstIndex+=(isStart?me.startOffset:me.endOffset)}else{node=node.childNodes[isStart?me.startOffset:me.endOffset];if(node){firstIndex=domUtils.getNodeIndex(node,ignoreTxt)}else{node=isStart?me.startContainer:me.endContainer;var first=node.firstChild;while(first){if(domUtils.isFillChar(first)){first=first.nextSibling;continue}firstIndex++;if(first.nodeType==3){while(first&&first.nodeType==3){first=first.nextSibling}}else{first=first.nextSibling}}}}}else{firstIndex=isStart?domUtils.isFillChar(node)?0:me.startOffset:me.endOffset}if(firstIndex<0){firstIndex=0}addrs.push(firstIndex);return addrs}addr.startAddress=getAddress(true);if(!ignoreEnd){addr.endAddress=me.collapsed?[].concat(addr.startAddress):getAddress()}return addr},moveToAddress:function(addr,ignoreEnd){var me=this;function getNode(address,isStart){var tmpNode=me.body,parentNode,offset;for(var i=0,ci,l=address.length;i<l;i++){ci=address[i];parentNode=tmpNode;tmpNode=tmpNode.childNodes[ci];if(!tmpNode){offset=ci;break}}if(isStart){if(tmpNode){me.setStartBefore(tmpNode)}else{me.setStart(parentNode,offset)}}else{if(tmpNode){me.setEndBefore(tmpNode)}else{me.setEnd(parentNode,offset)}}}getNode(addr.startAddress,true);!ignoreEnd&&addr.endAddress&&getNode(addr.endAddress);return me},equals:function(rng){for(var p in this){if(this.hasOwnProperty(p)){if(this[p]!==rng[p])return false}}return true},scrollIntoView:function(){var $span=$(' ');this.cloneRange().insertNode($span.get(0));var winScrollTop=$(window).scrollTop(),winHeight=$(window).height(),spanTop=$span.offset().top;if(spanTop<winScrollTop-winHeight||spanTop>winScrollTop+winHeight){if(spanTop>winScrollTop+winHeight){window.scrollTo(0,spanTop-winHeight+$span.height())}else{window.scrollTo(0,winScrollTop-spanTop)}}$span.remove()},getOffset:function(){var bk=this.createBookmark();var offset=$(bk.start).css('display','inline-block').offset();this.moveToBookmark(bk);return offset}}})();(function(){function getBoundaryInformation(range,start){var getIndex=domUtils.getNodeIndex;range=range.duplicate();range.collapse(start);var parent=range.parentElement();if(!parent.hasChildNodes()){return{container:parent,offset:0}}var siblings=parent.children,child,testRange=range.duplicate(),startIndex=0,endIndex=siblings.length-1,index=-1,distance;while(startIndex<=endIndex){index=Math.floor((startIndex+endIndex)/2);child=siblings[index];testRange.moveToElementText(child);var position=testRange.compareEndPoints('StartToStart',range);if(position>0){endIndex=index-1}else if(position<0){startIndex=index+1}else{return{container:parent,offset:getIndex(child)}}}if(index==-1){testRange.moveToElementText(parent);testRange.setEndPoint('StartToStart',range);distance=testRange.text.replace(/(\r\n|\r)/g,'\n').length;siblings=parent.childNodes;if(!distance){child=siblings[siblings.length-1];return{container:child,offset:child.nodeValue.length}}var i=siblings.length;while(distance>0){distance-=siblings[--i].nodeValue.length}return{container:siblings[i],offset:-distance}}testRange.collapse(position>0);testRange.setEndPoint(position>0?'StartToStart':'EndToStart',range);distance=testRange.text.replace(/(\r\n|\r)/g,'\n').length;if(!distance){return dtd.$empty[child.tagName]||dtd.$nonChild[child.tagName]?{container:parent,offset:getIndex(child)+(position>0?0:1)}:{container:child,offset:position>0?0:child.childNodes.length}}while(distance>0){try{var pre=child;child=child[position>0?'previousSibling':'nextSibling'];distance-=child.nodeValue.length}catch(e){return{container:parent,offset:getIndex(pre)}}}return{container:child,offset:position>0?-distance:child.nodeValue.length+distance}}function transformIERangeToRange(ieRange,range){if(ieRange.item){range.selectNode(ieRange.item(0))}else{var bi=getBoundaryInformation(ieRange,true);range.setStart(bi.container,bi.offset);if(ieRange.compareEndPoints('StartToEnd',ieRange)!=0){bi=getBoundaryInformation(ieRange,false);range.setEnd(bi.container,bi.offset)}}return range}function _getIERange(sel,txtRange){var ieRange;try{ieRange=sel.getNative(txtRange).createRange()}catch(e){return null}var el=ieRange.item?ieRange.item(0):ieRange.parentElement();if((el.ownerDocument||el)===sel.document){return ieRange}return null}var Selection=dom.Selection=function(doc,body){var me=this;me.document=doc;me.body=body;if(browser.ie9below){$(body).on('beforedeactivate',function(){me._bakIERange=me.getIERange()}).on('activate',function(){try{var ieNativRng=_getIERange(me);if((!ieNativRng||!me.rangeInBody(ieNativRng))&&me._bakIERange){me._bakIERange.select()}}catch(ex){}me._bakIERange=null})}};Selection.prototype={hasNativeRange:function(){var rng;if(!browser.ie||browser.ie9above){var nativeSel=this.getNative();if(!nativeSel.rangeCount){return false}rng=nativeSel.getRangeAt(0)}else{rng=_getIERange(this)}return this.rangeInBody(rng)},getNative:function(txtRange){var doc=this.document;try{return!doc?null:browser.ie9below||txtRange?doc.selection:domUtils.getWindow(doc).getSelection()}catch(e){return null}},getIERange:function(txtRange){var ieRange=_getIERange(this,txtRange);if(!ieRange||!this.rangeInBody(ieRange,txtRange)){if(this._bakIERange){return this._bakIERange}}return ieRange},rangeInBody:function(rng,txtRange){var node=browser.ie9below||txtRange?rng.item?rng.item():rng.parentElement():rng.startContainer;return node===this.body||domUtils.inDoc(node,this.body)},cache:function(){this.clear();this._cachedRange=this.getRange();this._cachedStartElement=this.getStart();this._cachedStartElementPath=this.getStartElementPath()},getStartElementPath:function(){if(this._cachedStartElementPath){return this._cachedStartElementPath}var start=this.getStart();if(start){return domUtils.findParents(start,true,null,true)}return[]},clear:function(){this._cachedStartElementPath=this._cachedRange=this._cachedStartElement=null},isFocus:function(){return this.hasNativeRange()},getRange:function(){var me=this;function optimze(range){var child=me.body.firstChild,collapsed=range.collapsed;while(child&&child.firstChild){range.setStart(child,0);child=child.firstChild}if(!range.startContainer){range.setStart(me.body,0)}if(collapsed){range.collapse(true)}}if(me._cachedRange!=null){return this._cachedRange}var range=new dom.Range(me.document,me.body);if(browser.ie9below){var nativeRange=me.getIERange();if(nativeRange&&this.rangeInBody(nativeRange)){try{transformIERangeToRange(nativeRange,range)}catch(e){optimze(range)}}else{optimze(range)}}else{var sel=me.getNative();if(sel&&sel.rangeCount&&me.rangeInBody(sel.getRangeAt(0))){var firstRange=sel.getRangeAt(0);var lastRange=sel.getRangeAt(sel.rangeCount-1);range.setStart(firstRange.startContainer,firstRange.startOffset).setEnd(lastRange.endContainer,lastRange.endOffset);if(range.collapsed&&domUtils.isBody(range.startContainer)&&!range.startOffset){optimze(range)}}else{if(this._bakRange&&(this._bakRange.startContainer===this.body||domUtils.inDoc(this._bakRange.startContainer,this.body))){return this._bakRange}optimze(range)}}return this._bakRange=range},getStart:function(){if(this._cachedStartElement){return this._cachedStartElement}var range=browser.ie9below?this.getIERange():this.getRange(),tmpRange,start,tmp,parent;if(browser.ie9below){if(!range){return this.document.body.firstChild}if(range.item){return range.item(0)}tmpRange=range.duplicate();tmpRange.text.length>0&&tmpRange.moveStart('character',1);tmpRange.collapse(1);start=tmpRange.parentElement();parent=tmp=range.parentElement();while(tmp=tmp.parentNode){if(tmp==start){start=parent;break}}}else{start=range.startContainer;if(start.nodeType==1&&start.hasChildNodes()){start=start.childNodes[Math.min(start.childNodes.length-1,range.startOffset)]}if(start.nodeType==3){return start.parentNode}}return start},getText:function(){var nativeSel,nativeRange;if(this.isFocus()&&(nativeSel=this.getNative())){nativeRange=browser.ie9below?nativeSel.createRange():nativeSel.getRangeAt(0);return browser.ie9below?nativeRange.text:nativeRange.toString()}return''}}})();(function(){var uid=0,_selectionChangeTimer;function setValue(form,editor){var textarea;if(editor.textarea){if(utils.isString(editor.textarea)){for(var i=0,ti,tis=domUtils.getElementsByTagName(form,'textarea');ti=tis[i++];){if(ti.id=='umeditortextarea'+editor.options.textarea){textarea=ti;break}}}else{textarea=editor.textarea}}if(!textarea){form.appendChild(textarea=domUtils.createElement(document,'textarea',{'name':editor.options.textarea,'id':'umeditortextarea'+editor.options.textarea,'style':"display:none"}));editor.textarea=textarea}textarea.value=editor.hasContents()?(editor.options.allHtmlEnabled?editor.getAllHtml():editor.getContent(null,null,true)):''}function loadPlugins(me){for(var pi in UM.plugins){if(me.options.excludePlugins.indexOf(pi)==-1){UM.plugins[pi].call(me);me.plugins[pi]=1}}me.langIsReady=true;me.fireEvent("langReady")}function checkCurLang(I18N){for(var lang in I18N){return lang}}var Editor=UM.Editor=function(options){var me=this;me.uid=uid++;EventBase.call(me);me.commands={};me.options=utils.extend(utils.clone(options||{}),UMEDITOR_CONFIG,true);me.shortcutkeys={};me.inputRules=[];me.outputRules=[];me.setOpt({isShow:true,initialContent:'',initialStyle:'',autoClearinitialContent:false,textarea:'editorValue',focus:false,focusInEnd:true,autoClearEmptyNode:true,fullscreen:false,readonly:false,zIndex:999,enterTag:'p',lang:'zh-cn',langPath:me.options.UMEDITOR_HOME_URL+'lang/',theme:'default',themePath:me.options.UMEDITOR_HOME_URL+'themes/',allHtmlEnabled:false,autoSyncData:true,autoHeightEnabled:true,excludePlugins:''});me.plugins={};if(!utils.isEmptyObject(UM.I18N)){me.options.lang=checkCurLang(UM.I18N);loadPlugins(me)}else{utils.loadFile(document,{src:me.options.langPath+me.options.lang+"/"+me.options.lang+".js",tag:"script",type:"text/javascript",defer:"defer"},function(){loadPlugins(me)})}};Editor.prototype={ready:function(fn){var me=this;if(fn){me.isReady?fn.apply(me):me.addListener('ready',fn)}},setOpt:function(key,val){var obj={};if(utils.isString(key)){obj[key]=val}else{obj=key}utils.extend(this.options,obj,true)},getOpt:function(key){return this.options[key]||''},destroy:function(){var me=this;me.fireEvent('destroy');var container=me.container.parentNode;if(container===document.body){container=me.container}var textarea=me.textarea;if(!textarea){textarea=document.createElement('textarea');container.parentNode.insertBefore(textarea,container)}else{textarea.style.display=''}textarea.style.width=me.body.offsetWidth+'px';textarea.style.height=me.body.offsetHeight+'px';textarea.value=me.getContent();textarea.id=me.key;if(container.contains(textarea)){$(textarea).insertBefore(container)}container.innerHTML='';domUtils.remove(container);UM.clearCache(me.id);for(var p in me){if(me.hasOwnProperty(p)){delete this[p]}}},initialCont:function(holder){if(holder){holder.getAttribute('name')&&(this.options.textarea=holder.getAttribute('name'));if(holder&&/script|textarea/ig.test(holder.tagName)){var newDiv=document.createElement('div');holder.parentNode.insertBefore(newDiv,holder);this.options.initialContent=UM.htmlparser(holder.value||holder.innerHTML||this.options.initialContent).toHtml();holder.className&&(newDiv.className=holder.className);holder.style.cssText&&(newDiv.style.cssText=holder.style.cssText);if(/textarea/i.test(holder.tagName)){this.textarea=holder;this.textarea.style.display='none'}else{holder.parentNode.removeChild(holder);holder.id&&(newDiv.id=holder.id)}holder=newDiv;holder.innerHTML=''}return holder}else{return null}},render:function(container){var me=this,options=me.options,getStyleValue=function(attr){return parseInt($(container).css(attr))};if(utils.isString(container)){container=document.getElementById(container)}if(container){this.id=container.getAttribute('id');UM.setEditor(this);utils.cssRule('edui-style-body',me.options.initialStyle,document);container=this.initialCont(container);container.className+=' edui-body-container';if(options.initialFrameWidth){options.minFrameWidth=options.initialFrameWidth}else{options.minFrameWidth=options.initialFrameWidth=$(container).width()||UM.defaultWidth}if(options.initialFrameHeight){options.minFrameHeight=options.initialFrameHeight}else{options.initialFrameHeight=options.minFrameHeight=$(container).height()||UM.defaultHeight}container.style.width=/%$/.test(options.initialFrameWidth)?'100%':options.initialFrameWidth-getStyleValue("padding-left")-getStyleValue("padding-right")+'px';var height=/%$/.test(options.initialFrameHeight)?'100%':(options.initialFrameHeight-getStyleValue("padding-top")-getStyleValue("padding-bottom"));if(this.options.autoHeightEnabled){container.style.minHeight=height+'px';container.style.height='';if(browser.ie&&browser.version<=6){container.style.height=height;container.style.setExpression('height','this.scrollHeight <= '+height+' ? "'+height+'px" : "auto"')}}else{$(container).height(height)}container.style.zIndex=options.zIndex;this._setup(container)}},_setup:function(cont){var me=this,options=me.options;cont.contentEditable=true;document.body.spellcheck=false;me.document=document;me.window=document.defaultView||document.parentWindow;me.body=cont;me.$body=$(cont);me.selection=new dom.Selection(document,me.body);me._isEnabled=false;var geckoSel;if(browser.gecko&&(geckoSel=this.selection.getNative())){geckoSel.removeAllRanges()}this._initEvents();for(var form=cont.parentNode;form&&!domUtils.isBody(form);form=form.parentNode){if(form.tagName=='FORM'){me.form=form;if(me.options.autoSyncData){$(cont).on('blur',function(){setValue(form,me)})}else{$(form).on('submit',function(){setValue(this,me)})}break}}if(options.initialContent){if(options.autoClearinitialContent){var oldExecCommand=me.execCommand;me.execCommand=function(){me.fireEvent('firstBeforeExecCommand');return oldExecCommand.apply(me,arguments)};this._setDefaultContent(options.initialContent)}else this.setContent(options.initialContent,false,true)}if(domUtils.isEmptyNode(me.body)){me.body.innerHTML='
'+(browser.ie?'':'
')+'
从git上下载的最新的utf8-php版本的编辑器,直接运行里面的index.html 在nginx +php 环境下跑的。p 标签 和后面的两个设置字体和字号的对文本不起作用。使用的是google浏览器