微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

kindeditor一些个人修改

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

kindeditor.js

rush: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'); 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(/(<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,'&<a href="https://www.jb51.cc/tag/cop/" target="_blank" class="keywords">cop</a>y;');
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.jb51.cc/js/54959.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐