2009-08-07 5 views
2

json 객체를 사용하여 다른 비트의 내용을 저장하고 있는데 그 중 하나에는 javascript가 포함될 수 있습니다 & html 관련 콘텐츠 (따옴표, 세미콜론, 태그 등) 인코딩없이 페이지를 깰 수 있습니다.JSP/Javascript/JQuery : 변수에 html/javascript 내용 저장 + textarea에 쓰기

"내용을": 내가 사용하고이 문제를 해결하려면 "<% = StringEscapeUtils.escapeHtml (StringEscapeUtils.escapeJavaScript (내용)) %>"

(I 서버 측 기술로 JSP를 사용하고 있습니다 이것은 페이지가로드 될 때 인라인으로 생성되는 JSON 비트입니다.

이 코드는 페이지를 손상시킬 수있는 문자를 이스케이프 처리하는데 적합하지만이 변수의 텍스트를 텍스트 영역으로 가져와야합니다.

$ ('textarea') .val (obj.content);

  • 원래의 내용은 다음과 같습니다 : <script>alert("hello world");</script>
  • 내용 변수는 보유 : &lt;script&gt;alert(&quot;hello world&quot;);&lt;/script&gt;
  • 의 텍스트

    는 내가 피하려고 노력하고있어이 시점에서 발생하는 이중 인코딩입니다 텍스트 영역을 읽어야 할 때 &lt;script&gt;alert(&quot;hello world&quot;);&lt;/script&gt;<script>alert("hello world");</script>

어떤 방법으로이 작업을 할 수 있습니까?

답변

0

그냥 이스케이프 처리합니다. 나는 $ ('textarea')를 의미한다 .val (unescape (obj.content));

+0

unescape()는 콘텐츠에 영향을 미치지 않습니다. – Dan

+0

예, 당신은 rigth :(미안합니다. htmp 엔티티를 수동으로 해독해야합니다. –

0

대신 StringEscapeUtils.escapeJavaScript을 사용할 수 있습니까? JSON이 <script> 블록에 있으면 페이지가 손상되지 않도록 충분해야하며 디코딩이 필요하지 않습니다.

+0

원래 의도 였지만 콘텐츠에 인코딩되지 않은 ""요소가 있기 때문에 JSON이 포함 된