2011-09-08 9 views
6

私は、私が表示したいと思うデータベースにHTMLデータを格納しています。
タグを&lt;br /&gt;に変換し続けますが、これは嫌な動作です。私はjavascriptを置き換えて試してみましたが、まだそれを通常のHTMLに変換することはできません。それは、ブラウザ上でレンダリングするとき私の "<br />"タグが "< br/>"に変換されるのはなぜですか?

var venueaddress = msg.result[0].venueaddress; 
    var venueaddress2 = venueaddress.replace("[newline]", "<br />"); 

       alert(venueaddress2); //shows <br /> 


$("#venueaddress").text(venueaddress2); //lets now display it on the browser 

<li><h3>Venue Address</h3><p><strong> <span id="venueaddress"></span> </strong></p></li> 

はしかし、それは< BR/>を持っており、何の改行がありませんがFORE。

+3

あなたのページにHTMLを追加する場所にコードを貼り付けることができます –

+0

HTMLをデータベースに保存する前にエンコードしていますか?マークアップをそのままHTMLで表示しようとしていますか? –

+0

この記事をチェックするhttp://stackoverflow.com/questions/1147359/jquery-decode-html-entities – Samich

答えて

7

あなたの問題があります。

+0

ありがとう、私はそれを完全に逃しました。 – jini

2

おそらくDOMに挿入すると、HTMLではなくテキストとして挿入されるためです。

あなたが行っているコードを表示していないので、確かに言い表すのは難しいですし、HTMLを期待するように変更する最良の方法を言うのは難しいです。

+0

を更新しました。あなたは絶対に正しいです – jini

3

&lt;br /&gt; == <br />need to Decode出力を元のHTMLに戻すだけです。あなたが任意のHTML文字をエンコードします

$("#venueaddress").html(venueaddress2); 

テキストを使用する必要がありますと、htmlのではないでしょうエンコードとしてスパンに表示されます

$("#venueaddress").text(venueaddress2); 

Use javascript unescape function

0

お客様のHTMLデータは「エスケープ」されています。これにより、人々はブラウザで無防備な人々に<script>タグを送信できなくなります。

修正:まず、問題が「バグ」か「機能」かを判断する必要があります。

通常、HTMLをエスケープするのは良いことです。特に唯一の問題がプレゼンテーションの1つである場合。

たとえば、回避策は、br要素ではなく改行文字を挿入することです。

関連する問題