2

このトピックについて、ここSOや他のサイトで他の質問が寄せられているのを見ましたが、解決策を見つけることができませんでした。TinyMCEを使用して、ユーザーがフォーマットされたテキストを入力できるようにしています。JQueryを使用してAjax呼び出しを行い、テキストエリアのコンテンツをサーバーにアップロードする[保存]ボタンがあります。サーバーでは、データベースにhtmlとして保存されます。

後でユーザーがページに戻ったときに、以前に入力したフォーマット済みのテキストを表示したいと思います。そのため、ページが読み込まれると、htmlはDataTableの非表示の列に保存されます。TinyMCEテキストエリアは、ページの読み込み時には存在せず、ユーザーがボタンをクリックするとJQueryを使用して動的に構築されます。JQueryスクリプトは非表示のテーブルセルからテキストエリアにhtmlをコピーし、再びJQueryプラグインを使用してTinyMCEを呼び出し、テキストエリアをTinyMCEエディターに変換します。

問題は、TinyMCEエディターがhtmlタグを含む保存されたhtmlを表示することです。例えば:

<p>Saved text</p>

htmlタグを表示したくないので、それに応じてテキストをフォーマットします。これを修正するにはどうすればよいですか?ありとあらゆる助けをいただければ幸いです。

私のjavascriptコードの短縮バージョン:

$('img').live('click', function() {

    // Copy the html into the textarea.
    $(this).closest('tr').next().find('textarea').val(gData[id].comments);

    // Convert the textarea into an editor.
    $(this).closest('tr').next().find('textarea').tinymce({

        // Location of TinyMCE script
        script_url : 'js/tiny_mce/tiny_mce.js',

        theme : "simple"
    });
}
4

2 に答える 2

4

クライアント側でタグのエンコードされたバージョンを表示しています。

したがって、tinyMCEはそれらをエンコードされたものと見なし、そのように表示します。

例えば:

次のように表示されます:&lt;p&gt;===> <p>

または&lt;p&gt;Saved text&lt;/p&gt;===><p>保存されたテキスト</p>

于 2012-08-01T20:17:43.780 に答える
2

解決策は非常に簡単です。クライアント側でテキストをデコードするだけです。

RubyonRailsで

<%= raw '<p>Some Text<p>' %>

'SomeText'として出力されます。htmlタグが削除されます。

于 2013-02-19T09:01:30.950 に答える