Welcome 微信登录

首页 / 脚本样式 / JavaScript / 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-25html = html.replace(/textarea__/ig, "textarea");urlType = urlType || "";wellFormatted = _undef(wellFormatted, false);indentChar = _undef(indentChar, "	");var fontSizeList = "xx-small,x-small,small,medium,large,x-large,xx-large".split(","); //2015-04-02将script里面的数据读取处理var obj = {};var index = 0;html = html.replace(/(<scripts[^>]*>)([sS]*?)(</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|pres[^>]*)>)([sS]*?)(</pre>)/ig, function ($0, $1, $2, $3) {return $1 + $2.replace(/<(?:br|brs[^>]*)>/ig, "
") + $3;});html = html.replace(/<(?:br|brs[^>]*)s*/?>s*</p>/ig, "</p>");html = html.replace(/(<(?:p|ps[^>]*)>)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, " ");});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|scripts[^>]*)>)([sS]*?)(</script>)/ig, "");}if (!htmlTagMap.style) {html = html.replace(/(<(?:style|styles[^>]*)>)([sS]*?)(</style>)/ig, "");}}var re = /(s*)<(/)?([w-:]+)((?:s+|(?:s+[w-:]+)|(?:s+[w-:]+=[^s""<>]+)|(?:s+[w-:"]+="[^"]*")|(?:s+[w-:"]+="[^"]*"))*)(/)?>(s*)/g;var tagStack = [];html = html.replace(re, function ($0, $1, $2, $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 = "
";} else {startNewline = "
";}}if (wellFormatted && tagName == "br") {endNewline = "
";}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 = "
";endNewline = "
";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, function (key, 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, 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)) {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, 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";}return startNewline + "<" + startSlash + tagName + attr + endSlash + ">" + endNewline;});html = html.replace(/(<(?:pre|pres[^>]*)>)([sS]*?)(</pre>)/ig, function ($0, $1, $2, $3) {return $1 + $2.replace(/
/g, "<span id="__kindeditor_pre_newline__">
") + $3;});html = html.replace(/
s*
/g, "
");html = html.replace(/<span id="__kindeditor_pre_newline__">
/g, "
");for (var key in obj) {html = html.replace(key, obj[key]);}//alert(html);return _trim(html);}
以上所述就是修改的kindeditor的全部代码了,希望大家能够喜欢。