2011-01-06 10 views
1

私は私のプロジェクトのための小さなMCEを使用し、小さなMCE内のノードを検証したいんです。テキスト要素をクリックすると、いくつかのidを持つ段落があるとしましょう。要素のエディタを読み込みます。しかし、ユーザーがコンテンツ全体を置き換えると、ノードとそのHTMLが失われることがあります。私はこのノードを保持したいだけで、コンテンツだけが削除されます。ノードは、段落または見出しまたはulまたはolにすることができます。小さなmceの中にノードを強制するには?

編集: 「Lorem epsum .....」のようなダミーテキストを提供しています。ユーザーはこのダミーテキストを削除してコンテンツを追加します。

EDIT2 私はユーザーにコンテンツのみを変更させ、周囲のHTMLとスタイルはそのまま残す必要があります。

私はこれを実現するにはどうすればよいですか?

+0

この場合、ユーザーは何時にコンテンツ全体を置き換えますか? – Thariama

+0

こんにちはThariama、親切に編集を参照してください。ありがとう – KutePHP

+0

あなたは何をしたいですか? option1:ダミーテキスト(周囲の段落付き)はエディタにとどまり、ユーザーの変更は適用されません。オプション2:ユーザーの変更が適用されますが、削除された段落は(上またはユーザーが編集したコンテンツを怒鳴る)エディタに滞在します。 option3:あなたはあなたの段落に触れないようにしたい(スタイリング、編集、何もしない)?あなたの質問テキストは、 "私はこのノードを保持し、コンテンツだけが削除されます"と述べています。これは、すべてのテキストコンテンツがなくなったように聞こえますが、空のノードはそこにとどまるべきです(?)。 – Thariama

答えて

0

これは、ノードのコンテンツがエディタであるかどうかを確認なり、そして一番下にそれを追加しますされていない場合。

var nodecontent; 
if (!tinyMCE.activeEditor.getContent().match(/nodecontent/) { 
    tinyMCE.activeEditor.setContent(tinyMCE.activeEditor.getContent()+nodecontent); 
} 
0

あなたはノードのIDまたはタイトルを尋ねるポップアップを提供する新しいボタンをtinymceで作成できます。このボタンをクリックすると、小さなコードが文字列のテキストフィールドに表示されます。

例えば:((ID:10))

ノードをロードするとき、現在のノードは、正規表現によってその中にその「コード」を有する場合は、検索することができます。存在する場合は、そのIDを持つノードのコンテンツをデータベースからロードします。ユーザーがエディタでHTML要素を削除することができながら、

0

うーん、周囲のHTMLを維持することは非常に難しいだろう。ユーザーが周囲のhtml(コピー/貼り付け、削除、バックスペース、コードプラグインの使用など)を削除して、大文字と小文字を区別する必要があります。

提案:

周囲のHTMLは、ユーザーが送信した後、あなたが周囲のHTMLを追加することによって、ユーザーに編集内容を完全に制御を与えることができる決して変わらない場合、/編集内容が保存されます。でも、周囲のHTMLせずにスタイルを維持するためには、CSSクラスを作成し、編集者はiframeのbody要素に適用するのに十分であるかもしれません。 body要素は削除できません。これがあなたのユースケースで受け入れられるかどうかわかりません(私たちに知らせてください)。

関連する問題