kindeditor修复会替换script内容的问题
kindeditor一些个人修改
1.替换script里面的内容的问题
2.颜色选择器扩展,复制的fck编辑器选颜色
3.swfupload.swf上传前图片预览功能
kindeditor.js
function_formatHtml(html,htmlTags,urlType,wellFormatted,indentChar){ if(html==null){ html=''; } //2015-03-25 html=html.replace(/textarea__/ig,"textarea"); urlType=urlType||''; wellFormatted=_undef(wellFormatted,false); indentChar=_undef(indentChar,'\t'); varfontSizeList='xx-small,x-small,small,medium,large,x-large,xx-large'.split(','); //2015-04-02将script里面的数据读取处理 varobj={}; varindex=0; html=html.replace(/(<script\s[^>]*>)([\s\S]*?)(<\/script>)/ig,function($0,$1,$2,$3){ varvalue=$2+''; if(value){ varkey="{$script__"+index+"$}"; obj[key]=value; index++; return$1+key+$3; }else{ return$0; } }); html=html.replace(/(<(?:pre|pre\s[^>]*)>)([\s\S]*?)(<\/pre>)/ig,function($0,$1,$2,$3){ return$1+$2.replace(/<(?:br|br\s[^>]*)>/ig,'\n')+$3; }); html=html.replace(/<(?:br|br\s[^>]*)\s*\/?>\s*<\/p>/ig,'</p>'); html=html.replace(/(<(?:p|p\s[^>]*)>)\s*(<\/p>)/ig,'$1<br/>$2'); html=html.replace(/\u200B/g,''); html=html.replace(/\u00A9/g,'©'); html=html.replace(/\u00AE/g,'®'); html=html.replace(/<[^>]+/g,function($0){ return$0.replace(/\s+/g,''); }); varhtmlTagMap={}; if(htmlTags){ _each(htmlTags,function(key,val){ vararr=key.split(','); for(vari=0,len=arr.length;i<len;i++){ htmlTagMap[arr[i]]=_toMap(val); } }); if(!htmlTagMap.script){ html=html.replace(/(<(?:script|script\s[^>]*)>)([\s\S]*?)(<\/script>)/ig,''); } if(!htmlTagMap.style){ html=html.replace(/(<(?:style|style\s[^>]*)>)([\s\S]*?)(<\/style>)/ig,''); } } varre=/(\s*)<(\/)?([\w\-:]+)((?:\s+|(?:\s+[\w\-:]+)|(?:\s+[\w\-:]+=[^\s"'<>]+)|(?:\s+[\w\-:"]+="[^"]*")|(?:\s+[\w\-:"]+='[^']*'))*)(\/)?>(\s*)/g; vartagStack=[]; html=html.replace(re,function($0,$1,$2,$3,$4,$5,$6){ varfull=$0, startNewline=$1||'', startSlash=$2||'', tagName=$3.toLowerCase(), attr=$4||'', endSlash=$5?''+$5:'', endNewline=$6||''; if(htmlTags&&!htmlTagMap[tagName]){ return''; } if(endSlash===''&&_SINGLE_TAG_MAP[tagName]){ endSlash='/'; } if(_INLINE_TAG_MAP[tagName]){ if(startNewline){ startNewline=''; } if(endNewline){ endNewline=''; } } if(_PRE_TAG_MAP[tagName]){ if(startSlash){ endNewline='\n'; }else{ startNewline='\n'; } } if(wellFormatted&&tagName=='br'){ endNewline='\n'; } if(_BLOCK_TAG_MAP[tagName]&&!_PRE_TAG_MAP[tagName]){ if(wellFormatted){ if(startSlash&&tagStack.length>0&&tagStack[tagStack.length-1]===tagName){ tagStack.pop(); }else{ tagStack.push(tagName); } startNewline='\n'; endNewline='\n'; for(vari=0,len=startSlash?tagStack.length:tagStack.length-1;i<len;i++){ startNewline+=indentChar; if(!startSlash){ endNewline+=indentChar; } } if(endSlash){ tagStack.pop(); }elseif(!startSlash){ endNewline+=indentChar; } }else{ startNewline=endNewline=''; } } if(attr!==''){ varattrMap=_getAttrList(full); if(tagName==='font'){ varfontStyleMap={},fontStyle=''; _each(attrMap,function(key,val){ if(key==='color'){ fontStyleMap.color=val; deleteattrMap[key]; } if(key==='size'){ fontStyleMap['font-size']=fontSizeList[parseInt(val,10)-1]||''; deleteattrMap[key]; } if(key==='face'){ fontStyleMap['font-family']=val; deleteattrMap[key]; } if(key==='style'){ fontStyle=val; } }); if(fontStyle&&!/;$/.test(fontStyle)){ fontStyle+=';'; } _each(fontStyleMap,function(key,val){ if(val===''){ return; } if(/\s/.test(val)){ val="'"+val+"'"; } fontStyle+=key+':'+val+';'; }); attrMap.style=fontStyle; } _each(attrMap,function(key,val){ if(_FILL_ATTR_MAP[key]){ attrMap[key]=key; } if(_inArray(key,['src','href'])>=0){ attrMap[key]=_formatUrl(val,urlType); } if(htmlTags&&key!=='style'&&!htmlTagMap[tagName]['*']&&!htmlTagMap[tagName][key]|| tagName==='body'&&key==='contenteditable'|| /^kindeditor_\d+$/.test(key)){ deleteattrMap[key]; } if(key==='style'&&val!==''){ varstyleMap=_getCssList(val); _each(styleMap,function(k,v){ if(htmlTags&&!htmlTagMap[tagName].style&&!htmlTagMap[tagName]['.'+k]){ deletestyleMap[k]; } }); varstyle=''; _each(styleMap,function(k,v){ style+=k+':'+v+';'; }); attrMap.style=style; } }); attr=''; _each(attrMap,function(key,val){ if(key==='style'&&val===''){ return; } val=val.replace(/"/g,'"'); attr+=''+key+'="'+val+'"'; }); } if(tagName==='font'){ tagName='span'; } returnstartNewline+'<'+startSlash+tagName+attr+endSlash+'>'+endNewline; }); html=html.replace(/(<(?:pre|pre\s[^>]*)>)([\s\S]*?)(<\/pre>)/ig,function($0,$1,$2,$3){ return$1+$2.replace(/\n/g,'<spanid="__kindeditor_pre_newline__">\n')+$3; }); html=html.replace(/\n\s*\n/g,'\n'); html=html.replace(/<spanid="__kindeditor_pre_newline__">\n/g,'\n'); for(varkeyinobj){ html=html.replace(key,obj[key]); } //alert(html); return_trim(html); }
以上所述就是修改的kindeditor的全部代码了,希望大家能够喜欢。