kindeditor は、スクリプト content_javascript スキルを置き換える問題を修正します
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'); 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, 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, ' '); }); 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, 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 = '\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, 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|pre\s[^>]*)>)([\s\S]*?)(<\/pre>)/ig, function ($0, $1, $2, $3) { return $1 + $2.replace(/\n/g, '<span id="__kindeditor_pre_newline__">\n') + $3; }); html = html.replace(/\n\s*\n/g, '\n'); html = html.replace(/<span id="__kindeditor_pre_newline__">\n/g, '\n'); for (var key in obj) { html = html.replace(key, obj[key]); } //alert(html); return _trim(html); }
以上所述就是修改的kindeditor的全部代码了,希望大家能够喜欢。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











JavaScript文字列置換法とFAQの詳細な説明 この記事では、javaScriptの文字列文字を置き換える2つの方法について説明します:内部JavaScriptコードとWebページの内部HTML。 JavaScriptコード内の文字列を交換します 最も直接的な方法は、置換()メソッドを使用することです。 str = str.replace( "find"、 "置換"); この方法は、最初の一致のみを置き換えます。すべての一致を置き換えるには、正規表現を使用して、グローバルフラグGを追加します。 str = str.replace(/fi

楽なWebページレイアウトのためにjQueryを活用する:8本質的なプラグイン jQueryは、Webページのレイアウトを大幅に簡素化します。 この記事では、プロセスを合理化する8つの強力なjQueryプラグイン、特に手動のウェブサイトの作成に役立ちます

それで、あなたはここで、Ajaxと呼ばれるこのことについてすべてを学ぶ準備ができています。しかし、それは正確には何ですか? Ajaxという用語は、動的でインタラクティブなWebコンテンツを作成するために使用されるテクノロジーのゆるいグループ化を指します。 Ajaxという用語は、もともとJesse Jによって造られました

この投稿は、Android、BlackBerry、およびiPhoneアプリ開発用の有用なチートシート、リファレンスガイド、クイックレシピ、コードスニペットをコンパイルします。 開発者がいないべきではありません! タッチジェスチャーリファレンスガイド(PDF) Desigの貴重なリソース

jQueryは素晴らしいJavaScriptフレームワークです。ただし、他のライブラリと同様に、何が起こっているのかを発見するためにフードの下に入る必要がある場合があります。おそらく、バグをトレースしているか、jQueryが特定のUIをどのように達成するかに興味があるからです

10の楽しいjQueryゲームプラグインして、あなたのウェブサイトをより魅力的にし、ユーザーの粘着性を高めます! Flashは依然としてカジュアルなWebゲームを開発するのに最適なソフトウェアですが、jQueryは驚くべき効果を生み出すこともできます。また、純粋なアクションフラッシュゲームに匹敵するものではありませんが、場合によってはブラウザで予期せぬ楽しみもできます。 jquery tic toeゲーム ゲームプログラミングの「Hello World」には、JQueryバージョンがあります。 ソースコード jQueryクレイジーワードコンポジションゲーム これは空白のゲームであり、単語の文脈を知らないために奇妙な結果を生み出すことができます。 ソースコード jquery鉱山の掃引ゲーム

記事では、JavaScriptライブラリの作成、公開、および維持について説明し、計画、開発、テスト、ドキュメント、およびプロモーション戦略に焦点を当てています。

このチュートリアルでは、jQueryを使用して魅惑的な視差の背景効果を作成する方法を示しています。 見事な視覚的な深さを作成するレイヤー画像を備えたヘッダーバナーを構築します。 更新されたプラグインは、jQuery 1.6.4以降で動作します。 ダウンロードしてください
