0

これが問題です。ウェブサイトに正しく表示されるphpのhtmlentities()を使用してエンコードされたhtmlの「pre」タグがあります。

しかし、それを再デコードして「テキストエリア」に入れ、リアルタイムで操作したいと考えています。(たとえば、stackoverflow のように)。そして、変更されたこのテキストは、新しい情報とともに「pre」タグに (何度も) エンコードされます。

これを試しましたが、テキストエリアが常に空であるため、機能しないようです。これはコードです:

<script>
var t0=document.getElementById("textarea0"),
x0=document.getElementById('pre0');

t0.value=x0.innerHTML().html().text(); //dec
t0.onkeyup=function(){
x0.innerHTML=t0>.value.text().html(); //enc};
</script>

私はこのコードがどのように機能するかを本当に理解していません.jqueryは私の頭から離れているため、間違っていることはわかっています$('<div/>').エンコーディングの前にこれに関連する他の同様の質問を見ましたが、それが問題だとは思いません. (私はこれについて盲目であることを繰り返します)

(間違いが多すぎたらごめんなさい、私はあなたが推測できるように英語の作家ではありません、そして私は翻訳者を使用していません)

編集済み

最初の部分が機能するようになりました。Textarea は PRE のコンテンツで満たされ、<>実際の作業のために (そのようなもので) デコードされます。

しかし、それを PRE に戻して、新しい変更を加えることはできません。

これが実際のコードです。

var t0=$("textarea#textareaName0"),
x0=$('pre#xmpName0');

t0.val(x0.text()); //dec
t0.keyup(function()
{
x0.innerHTML=t0.val(); //enc
});

解決策はありますか?(どうもありがとうございます)

最終的解決

コンテンツを更新するために機能するコードは次のとおりです。

t0.keyup(function()
{
x0.text(t0.val()); //enc
});

あなたが言ったように、jqueryは解釈されずに画面のHTMLに印刷できるので、それを避けるためにエンコーディングが必要です。どうもありがとう。

4

2 に答える 2

1

これは、HTML ソースを表示する HTML チュートリアルのようなものであり、そのソースを逐語的に (すべての&gt;ものなしで)編集する必要があると想定しています。

var src = $("pre").text()variable のソースが表示されますsrc

$("textarea").val(src);テキスト領域に配置する必要があります(ここから)。

ちなみに、1 つの div を含む DOM を提供するのと$(src)同様に、src を使用して切り離された DOM を提供します。$('<div/>')jQueryではなくユーザーに編集してもらいたいようですので、必要なものはすべて揃っておりsrc、DOMを作成する必要はありません。jQuery から要素を挿入する場合にのみ、DOM を使用する必要があります。

于 2013-08-14T15:42:49.297 に答える