亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > JavaScript > 正文

kindeditor修復會替換script內容的問題

2024-05-06 16:18:17
字體:
來源:轉載
供稿:網友

這里給大家分享的是個人修改的kindeditor的代碼,主要是修復了一些BUG,添加了些常用功能,推薦給大家,有需要的小伙伴可以參考下。

kindeditor一些個人修改

1.替換script里面的內容的問題

2.顏色選擇器擴展,復制的fck編輯器選顏色

3.swfupload.swf上傳前圖片預覽功能

kindeditor.js

 

 
  1. function _formatHtml(html, htmlTags, urlType, wellFormatted, indentChar) { 
  2. if (html == null) { 
  3. html = ''
  4. //2015-03-25 
  5. html = html.replace(/textarea__/ig, "textarea"); 
  6. urlType = urlType || ''
  7. wellFormatted = _undef(wellFormatted, false); 
  8. indentChar = _undef(indentChar, '/t'); 
  9. var fontSizeList = 'xx-small,x-small,small,medium,large,x-large,xx-large'.split(','); 
  10.  
  11. //2015-04-02將script里面的數據讀取處理 
  12. var obj = {}; 
  13. var index = 0; 
  14. html = html.replace(/(<script/s[^>]*>)([/s/S]*?)(<//script>)/ig, function ($0, $1, $2, $3) { 
  15. var value = $2 + ''
  16. if (value) { 
  17. var key = "{$script__" + index + "$}"
  18. obj[key] = value; 
  19. index++; 
  20. return $1 + key + $3; 
  21. else { 
  22. return $0; 
  23. }); 
  24. html = html.replace(/(<(?:pre|pre/s[^>]*)>)([/s/S]*?)(<//pre>)/ig, function ($0, $1, $2, $3) { 
  25. return $1 + $2.replace(/<(?:br|br/s[^>]*)>/ig, '/n') + $3; 
  26. }); 
  27. html = html.replace(/<(?:br|br/s[^>]*)/s*//?>/s*<//p>/ig, '</p>'); 
  28. html = html.replace(/(<(?:p|p/s[^>]*)>)/s*(<//p>)/ig, '$1<br />$2'); 
  29. html = html.replace(//u200B/g, ''); 
  30. html = html.replace(//u00A9/g, '©'); 
  31. html = html.replace(//u00AE/g, '®'); 
  32. html = html.replace(/<[^>]+/g, function ($0) { 
  33. return $0.replace(//s+/g, ' '); 
  34. }); 
  35. var htmlTagMap = {}; 
  36. if (htmlTags) { 
  37. _each(htmlTags, function (key, val) { 
  38. var arr = key.split(','); 
  39. for (var i = 0, len = arr.length; i < len; i++) { 
  40. htmlTagMap[arr[i]] = _toMap(val); 
  41. }); 
  42. if (!htmlTagMap.script) { 
  43. html = html.replace(/(<(?:script|script/s[^>]*)>)([/s/S]*?)(<//script>)/ig, ''); 
  44. if (!htmlTagMap.style) { 
  45. html = html.replace(/(<(?:style|style/s[^>]*)>)([/s/S]*?)(<//style>)/ig, ''); 
  46. var re = /(/s*)<(//)?([/w/-:]+)((?:/s+|(?:/s+[/w/-:]+)|(?:/s+[/w/-:]+=[^/s"'<>]+)|(?:/s+[/w/-:"]+="[^"]*")|(?:/s+[/w/-:"]+='[^']*'))*)(//)?>(/s*)/g; 
  47. var tagStack = []; 
  48. html = html.replace(re, function ($0, $1, $2, $3, $4, $5, $6) { 
  49. var full = $0, 
  50. startNewline = $1 || ''
  51. startSlash = $2 || ''
  52. tagName = $3.toLowerCase(), 
  53. attr = $4 || ''
  54. endSlash = $5 ? ' ' + $5 : ''
  55. endNewline = $6 || ''
  56. if (htmlTags && !htmlTagMap[tagName]) { 
  57. return ''
  58. if (endSlash === '' && _SINGLE_TAG_MAP[tagName]) { 
  59. endSlash = ' /'
  60. if (_INLINE_TAG_MAP[tagName]) { 
  61. if (startNewline) { 
  62. startNewline = ' '
  63. if (endNewline) { 
  64. endNewline = ' '
  65. if (_PRE_TAG_MAP[tagName]) { 
  66. if (startSlash) { 
  67. endNewline = '/n'
  68. else { 
  69. startNewline = '/n'
  70. if (wellFormatted && tagName == 'br') { 
  71. endNewline = '/n'
  72. if (_BLOCK_TAG_MAP[tagName] && !_PRE_TAG_MAP[tagName]) { 
  73. if (wellFormatted) { 
  74. if (startSlash && tagStack.length > 0 && tagStack[tagStack.length - 1] === tagName) { 
  75. tagStack.pop(); 
  76. else { 
  77. tagStack.push(tagName); 
  78. startNewline = '/n'
  79. endNewline = '/n'
  80. for (var i = 0, len = startSlash ? tagStack.length : tagStack.length - 1; i < len; i++) { 
  81. startNewline += indentChar; 
  82. if (!startSlash) { 
  83. endNewline += indentChar; 
  84. if (endSlash) { 
  85. tagStack.pop(); 
  86. else if (!startSlash) { 
  87. endNewline += indentChar; 
  88. else { 
  89. startNewline = endNewline = ''
  90. if (attr !== '') { 
  91. var attrMap = _getAttrList(full); 
  92. if (tagName === 'font') { 
  93. var fontStyleMap = {}, fontStyle = ''
  94. _each(attrMap, function (key, val) { 
  95. if (key === 'color') { 
  96. fontStyleMap.color = val; 
  97. delete attrMap[key]; 
  98. if (key === 'size') { 
  99. fontStyleMap['font-size'] = fontSizeList[parseInt(val, 10) - 1] || ''
  100. delete attrMap[key]; 
  101. if (key === 'face') { 
  102. fontStyleMap['font-family'] = val; 
  103. delete attrMap[key]; 
  104. if (key === 'style') { 
  105. fontStyle = val; 
  106. }); 
  107. if (fontStyle && !/;$/.test(fontStyle)) { 
  108. fontStyle += ';'
  109. _each(fontStyleMap, function (key, val) { 
  110. if (val === '') { 
  111. return
  112. if (//s/.test(val)) { 
  113. val = "'" + val + "'"
  114. fontStyle += key + ':' + val + ';'
  115. }); 
  116. attrMap.style = fontStyle; 
  117. _each(attrMap, function (key, val) { 
  118. if (_FILL_ATTR_MAP[key]) { 
  119. attrMap[key] = key; 
  120. if (_inArray(key, ['src''href']) >= 0) { 
  121. attrMap[key] = _formatUrl(val, urlType); 
  122. if (htmlTags && key !== 'style' && !htmlTagMap[tagName]['*'] && !htmlTagMap[tagName][key] || 
  123. tagName === 'body' && key === 'contenteditable' || 
  124. /^kindeditor_/d+$/.test(key)) { 
  125. delete attrMap[key]; 
  126. if (key === 'style' && val !== '') { 
  127. var styleMap = _getCssList(val); 
  128. _each(styleMap, function (k, v) { 
  129. if (htmlTags && !htmlTagMap[tagName].style && !htmlTagMap[tagName]['.' + k]) { 
  130. delete styleMap[k]; 
  131. }); 
  132. var style = ''
  133. _each(styleMap, function (k, v) { 
  134. style += k + ':' + v + ';'
  135. }); 
  136. attrMap.style = style; 
  137. }); 
  138. attr = ''
  139. _each(attrMap, function (key, val) { 
  140. if (key === 'style' && val === '') { 
  141. return
  142. val = val.replace(/"/g, '"'); 
  143. attr += ' ' + key + '="' + val + '"'
  144. }); 
  145. if (tagName === 'font') { 
  146. tagName = 'span'
  147. return startNewline + '<' + startSlash + tagName + attr + endSlash + '>' + endNewline; 
  148. }); 
  149. html = html.replace(/(<(?:pre|pre/s[^>]*)>)([/s/S]*?)(<//pre>)/ig, function ($0, $1, $2, $3) { 
  150. return $1 + $2.replace(//n/g, '<span id="__kindeditor_pre_newline__">/n') + $3; 
  151. }); 
  152. html = html.replace(//n/s*/n/g, '/n'); 
  153. html = html.replace(/<span id="__kindeditor_pre_newline__">/n/g, '/n'); 
  154. for (var key in obj) { 
  155. html = html.replace(key, obj[key]); 
  156. //alert(html); 
  157. return _trim(html); 

以上所述就是修改的kindeditor的全部代碼了,希望大家能夠喜歡。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲成人精品在线| 国产精品综合网站| 亚洲精品白浆高清久久久久久| 成人免费观看a| 欧美大荫蒂xxx| 热re99久久精品国产66热| 日韩一区二区欧美| 欧美黄色三级网站| 日韩中文理论片| 最近更新的2019中文字幕| 日韩中文字幕免费视频| 精品成人乱色一区二区| 日韩成人在线观看| 在线视频精品一| 在线播放日韩av| 91av视频在线免费观看| 国产欧美日韩中文| 精品国产91久久久久久老师| 日韩男女性生活视频| 久久天天躁狠狠躁夜夜躁| 久久久99免费视频| 国产69精品久久久久9999| 97精品久久久中文字幕免费| 欧美日韩国产综合视频在线观看中文| 久久理论片午夜琪琪电影网| 国产精品久久久久aaaa九色| 国产精品黄视频| 欧美亚洲第一区| 国产精品高潮呻吟久久av无限| 欧美www视频在线观看| 日韩亚洲欧美中文在线| 高清日韩电视剧大全免费播放在线观看| 日韩av手机在线观看| 91在线视频成人| 狠狠久久五月精品中文字幕| 中文字幕一精品亚洲无线一区| 欧美丰满少妇xxxx| 久久人人爽亚洲精品天堂| 国产伊人精品在线| 69精品小视频| 国产精品大陆在线观看| 国产男人精品视频| 欧美精品一区在线播放| 国产精品欧美一区二区| 久久久日本电影| 国产欧美久久一区二区| 久久不射电影网| 97不卡在线视频| 欧洲中文字幕国产精品| 性视频1819p久久| 视频在线一区二区| 欧美激情女人20p| 91在线高清免费观看| 久久伊人精品天天| 美乳少妇欧美精品| 国产一区玩具在线观看| 国产日韩一区在线| 成人免费观看49www在线观看| 日本在线观看天堂男亚洲| 日韩精品免费视频| 国产精品久久久久久久久久尿| 亚洲国产精品va在线观看黑人| 最近免费中文字幕视频2019| 亚洲日本成人网| 97视频免费在线看| 国产亚洲欧美日韩精品| 色七七影院综合| 国产成人高清激情视频在线观看| 亚洲精品国产综合区久久久久久久| 欧美老肥婆性猛交视频| 国产精品成人va在线观看| 欧美一级大片在线观看| 一道本无吗dⅴd在线播放一区| 亚洲国产精品va在线看黑人动漫| 欧美激情一二三| 欧美电影院免费观看| 久久国产精品久久久久久| 色偷偷噜噜噜亚洲男人| 成人444kkkk在线观看| 日韩网站在线观看| 九九久久精品一区| 亚洲精品美女在线观看播放| 91精品视频在线看| 久久久久久久久综合| 欧美视频中文在线看| 亚洲欧美精品在线| 中文字幕九色91在线| 欧美成人在线免费视频| 亚洲一二三在线| 91精品久久久久久久久久入口| 欧美性猛交丰臀xxxxx网站| 国产91精品网站| 精品国产一区二区三区久久狼黑人| 亚洲国产精品高清久久久| 最近2019年手机中文字幕| 久久久久久久久久久久久久久久久久av| 亚洲美女在线观看| 久久精品国产清自在天天线| 欧美视频不卡中文| 欧美激情在线观看| 亚洲黄在线观看| 日韩中文综合网| 77777亚洲午夜久久多人| 亚洲美女中文字幕| 日本一区二区在线免费播放| 日韩在线小视频| 91精品国产91久久| 日韩av不卡电影| 欧美裸体xxxxx| 一区二区三区美女xx视频| 日韩经典中文字幕| 国产成人精品国内自产拍免费看| 97香蕉超级碰碰久久免费的优势| 色婷婷综合成人av| 欧美久久久精品| 欧亚精品在线观看| 中文字幕不卡av| 久久视频国产精品免费视频在线| 理论片在线不卡免费观看| www.日韩av.com| 久久久久国产精品www| 97超级碰在线看视频免费在线看| 久久成人精品一区二区三区| 成人免费观看网址| 日韩精品一区二区视频| 中文字幕亚洲在线| 色www亚洲国产张柏芝| 国产成人精品免费视频| 欧美高清视频在线播放| 精品久久中文字幕| 黑人巨大精品欧美一区免费视频| 91精品综合久久久久久五月天| 国产精品91视频| 欧美精品aaa| 欧美大片在线看免费观看| 色中色综合影院手机版在线观看| 欧美视频一二三| 亚洲电影在线观看| 久久久精品国产亚洲| 久久精品视频免费播放| 尤物精品国产第一福利三区| 精品国产乱码久久久久久虫虫漫画| 亚洲视频在线免费看| 欧美性猛交xxxx久久久| 亚洲视屏在线播放| 欧美多人爱爱视频网站| 欧美综合一区第一页| 91久久精品国产91久久性色| 亚洲图片制服诱惑| 2020久久国产精品| 精品亚洲国产成av人片传媒| 国产精品自产拍在线观| 在线精品高清中文字幕| 国产欧美亚洲视频| 久久香蕉精品香蕉| 欧美在线一区二区三区四| 懂色av中文一区二区三区天美| 国产日韩欧美黄色| 日韩视频欧美视频| 久久精品国产综合| 国产在线视频2019最新视频| 成人黄色av播放免费| 色噜噜狠狠色综合网图区| 国产精品青青在线观看爽香蕉|