1

jqueryで変換<p> ... <code>&amp;lt;div id='asd'&amp;gt;asd&amp;lt;/div&amp;gt;</code></p>したい。<p> ... <code><div id='asd'>asd</div></code></p>

@Html.Raw(HttpUtility.HtmlDecode(html))他の言い方をすれば、asp.net MVC のようにjquery を使用して適用したいと考えています。

同様の問題( link1 、 link2 )の解決策を試しました問題を解決するには不十分です。2 つの問題が発生しました。replace は、このフィドルのようにすべての一致を置き換えるわけではありません(このリンクでこの問題を解決しました)。変換されたコードは、html とブラウザーで期待どおりに表示されません。html の階層が破壊されます。

詳細については:

デコードする文字列:

<p>fddfg dfgdfgdfg dfgdfgdfgd  <em>asdasd</em> <strong>cvbncvbn</strong> <code>&amp;lt;div id='asd'&amp;gt;asd&amp;lt;/div&amp;gt;</code></p>

HTML デコード後の HTML 出力:

<p>
   fddfg dfgdfgdfg dfgdfgdfgd
   <em>asdasd</em>
   <strong>cvbncvbn</strong>
   <code></code>
</p>
<div id="asd">
   <code>asd</code>
</div>
<p></p>

HTML デコード後のブラウザ出力:

fddfg dfgdfgdfg dfgdfgdfgd asdasd cvbncvbn

asd

フィドルで問題を確認できます(特にコンソールを見てください):

予想される、または望ましいブラウザー出力:

fddfg dfgdfgdfg dfgdfgdfgd asdasd cvbncvbn <div id='asd'>asd</div>

この壊れた html 出力が出てくるのはなぜですか?どうすれば解決できますか?

4

3 に答える 3

0

別の方法で問題を解決しました。を使用して、Asp.Net MVC のサーバー側で html をデコードしHttpUtility.HtmlDecode(html)ました。

詳細に;

サーバ側:

var yorumHtml = "<p>fddfg dfgdfgdfg dfgdfgdfgd  <em>asdasd</em> <strong>cvbncvbn</strong> <code>&amp;lt;div id='asd'&amp;gt;asd&amp;lt;/div&amp;gt;</code></p>";

return Json(new { Success = true, YorumHtml = HttpUtility.HtmlDecode(yorumHtml)});

クライアント側の JavaScript (Ajax の成功):

$('span#container').html(response.YorumHtml);

HTML 出力:

<p>
   fddfg dfgdfgdfg dfgdfgdfgd
   <em>asdasd</em>
   <strong>cvbncvbn</strong>
   <code><div id='asd'>asd</div></code>
</p>

ブラウザ出力:

fddfg dfgdfgdfg dfgdfgdfgd asdasd cvbncvbn <div id='asd'>asd</div>
于 2013-08-04T13:50:12.233 に答える