2

私はリッチ テキスト エディターを扱っていますが、jQuery.html() を使用して "contenteditable" div に hmtl エンティティを挿入しようとすると、これらのエンティティが解釈されます。

私が行った場合:

<textarea><b>Hey, look.. this is how do yo make your text bold:</b>&gt;b&lt&;{text}&gt;/b&lt;</textarea>

そして、次を使用してリッチテキストエディターでそのテキストエリアを変換しようとしています:

this.$editor.html($textarea.val());

私が期待するもの:

ちょっと見て..これはあなたのテキストを太字にする方法です:

<b>{text}</b>

私が得るもの:

ちょっと見て..これはあなたのテキストを太字にする方法です: {text}

明らかに、この場合は jQuery.text() を使用できません...何かアイデアはありますか? エディターを変更してください。それは選択の余地がありません。

編集: ここに例を示します: http://jsfiddle.net/nNuKk/3/

4

2 に答える 2

3

コメントのjsfiddle に従って、ここでは別の作業例を示し ます。escape&&lt;&gt;

テキスト領域のテキストを以下のようにするだけです

 <b>Hey, look.. this is how do you make your text bold:</b>
&amp;lt;b&amp;gt;{text}&amp;lt;/b&amp;gt;

これがあなたが探しているものであれば、答えを受け入れてください:)またはあなたのコメント/懸念を私に知らせてください.


実際の

 <body>
    <textarea id="myid"><b>Hey, look.. this is how do yo make your text bold:</b>&gt;b&lt&;{text}&gt;/b&lt;</textarea>

    <div id=2>

    </div>
</body>

そしてJavaScript

   $("#2").text($("#myid").val());

SOあなたの場合、使用する必要があります

this.$editor.text($textarea.val());

それ以外の

this.$editor.html($textarea.val());

これがうまくいかない場合は、あなたの要素タイプ$editor textareaまたはspanその他のものを教えてください

上記がうまくいかない場合は、これを試してください

 var temp=$("<div></div>").text($textarea.val()).html(); //temp will contain the escaped representation
 this.$editor.html(temp); 
于 2013-04-30T15:40:58.130 に答える
0

詳細を省略しました-使用しているリッチエディターなどですが、エディターが使用している .html() は、jqueryがDOMを操作するために使用する .html() と同じではないようです(そうであれば、あなたがやろうとしていることはうまくいくでしょう)

実際の解決策は、問題のエディターの実装によって異なります...

于 2013-04-30T15:38:23.463 に答える