2011-09-08 2 views
6

내가 표시하고자하는 데이터베이스에 HTML 데이터가 저장되어 있습니다. 그것은 내가 원하지 않는 행동 인
태그를 &lt;br /&gt;으로 계속 변환합니다. 대체 자바 스크립트로 재생 시도하고 여전히 일반 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/>을 가지고 있으며 더 줄 바꿈이없는이 이물.

+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을 이스케이프 처리하는 것이 좋습니다. 특히 유일한 문제가 프리젠 테이션 중 하나 인 경우.

예를 들어, 해결 방법은 br 요소 대신 줄 바꿈 문자를 삽입하는 것일 수 있습니다.

관련 문제