kindeditor修复会替换script内容的问题

前端之家收集整理的这篇文章主要介绍了kindeditor修复会替换script内容的问题前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

kindeditor一些个人修改

1.替换script里面的内容的问题 2.颜色选择器扩展,复制的fck编辑器选颜色 3.swfupload.swf上传图片预览功能

kindeditor.js

//2015-04-02将script里面的数据读取处理 var obj = {}; var index = 0; html = html.replace(/(<script\s[^>]*>)([\s\S]*?)(<\/script>)/ig,function ($0,$1,$2,$3) { var value = $2 + ''; if (value) { var key = "{$script__" + index + "$}"; obj[key] = value; index++; return $1 + key + $3; } else { return $0; } }); html = html.replace(/(<(?:pre|pre\s[^>]*)>)([\s\S]*?)(<\/pre>)/ig,$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,'&copy;'); html = html.replace(/\u00AE/g,'&reg;'); html = html.replace(/<[^>]+/g,function ($0) { return $0.replace(/\s+/g,' '); }); var htmlTagMap = {}; if (htmlTags) { _each(htmlTags,function (key,val) { var arr = key.split(','); for (var i = 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,''); } } var re = /(\s*)<(\/)?([\w\-:]+)((?:\s+|(?:\s+[\w\-:]+)|(?:\s+[\w\-:]+=[^\s"'<>]+)|(?:\s+[\w\-:"]+="[^"]*")|(?:\s+[\w\-:"]+='[^']*'))*)(\/)?>(\s*)/g; var tagStack = []; html = html.replace(re,$3,$4,$5,$6) { var full = $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 (var i = 0,len = startSlash ? tagStack.length : tagStack.length - 1; i < len; i++) { startNewline += indentChar; if (!startSlash) { endNewline += indentChar; } } if (endSlash) { tagStack.pop(); } else if (!startSlash) { endNewline += indentChar; } } else { startNewline = endNewline = ''; } } if (attr !== '') { var attrMap = _getAttrList(full); if (tagName === 'font') { var fontStyleMap = {},fontStyle = ''; _each(attrMap,val) { if (key === 'color') { fontStyleMap.color = val; delete attrMap[key]; } if (key === 'size') { fontStyleMap['font-size'] = fontSizeList[parseInt(val,10) - 1] || ''; delete attrMap[key]; } if (key === 'face') { fontStyleMap['font-family'] = val; delete attrMap[key]; } if (key === 'style') { fontStyle = val; } }); if (fontStyle && !/;$/.test(fontStyle)) { fontStyle += ';'; } _each(fontStyleMap,val) { if (val === '') { return; } if (/\s/.test(val)) { val = "'" + val + "'"; } fontStyle += key + ':' + val + ';'; }); attrMap.style = fontStyle; } _each(attrMap,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)) { delete attrMap[key]; } if (key === 'style' && val !== '') { var styleMap = _getCssList(val); _each(styleMap,function (k,v) { if (htmlTags && !htmlTagMap[tagName].style && !htmlTagMap[tagName]['.' + k]) { delete styleMap[k]; } }); var style = ''; _each(styleMap,v) { style += k + ':' + v + ';'; }); attrMap.style = style; } }); attr = ''; _each(attrMap,val) { if (key === 'style' && val === '') { return; } val = val.replace(/"/g,'"'); attr += ' ' + key + '="' + val + '"'; }); } if (tagName === 'font') { tagName = 'span'; } return startNewline + '<' + startSlash + tagName + attr + endSlash + '>' + endNewline; }); html = html.replace(/(<(?:pre|pre\s[^>]*)>)([\s\S]*?)(<\/pre>)/ig,$3) { return $1 + $2.replace(/\n/g,'<span id="__kindeditor_pre_newline__"&gt;\n') + $3; }); html = html.replace(/\n\s*\n/g,'\n'); html = html.replace(/<span id="__kindeditor_pre_newline__"&gt;\n/g,'\n'); for (var key in obj) { html = html.replace(key,obj[key]); } //alert(html); return _trim(html);

}

以上所述就是修改的kindeditor的全部代码了,希望大家能够喜欢。

原文链接:https://www.f2er.com/js/54959.html

猜你在找的JavaScript相关文章