기본적으로 HTML 태그가 포함될 수있는 텍스트가 있지만 HTML이 아닌 인코딩 된 문자가 포함될 수 있습니다.JavaScript에서 태그 자체를 인코딩하지 않고 html 태그가 포함 된 텍스트를 HTML로 인코딩하는 방법
var doc = window.document.implementation.createDocument
('http://www.w3.org/1999/xhtml', 'html', null);
var text = '<head><script>somejs</script>' +
'<script>var x = 7; var y = 5; var foo = x < y;</script>' +
'</head><body></body>');
텍스트를 요소 innerHTML 특성으로 설정하고 싶습니다. 때문에 x와 y 사이의보다 기호의 DOM 예외 11 : 난 그냥
doc.getElementsByTagName('html')[0].innerHTML = text;
을 할 경우 이는 INVALID_STATE_ERR됩니다. 내가 변수 텍스트 대해 HTMLEncode 경우
그러나, 나는
<head><script>somejs</script><script>var x = 7; var y = 5; var foo = x < y;</script></head><body></body>
을 얻을 그리하여 나는 그 innerHTML을 설정 한 후 원하는 요소가 행동에 필요한 모든 태그를 잃게됩니다. 태그 자체를 인코딩하지 않고 문자열의 모든 태그 내용을 htmlencode하는 표준 방법이 있습니까?
결과를 얻기 위해'escape'와'unescape'을 사용하십시오. –
아쉽게도 전체 문자열을 이스케이프 처리하므로 doc.getElementsByTagName ('script')와 같은 작업을 수행하려는 경우 스크립트 태그를 구성하는 < and >이 이스케이프 처리 되었기 때문에 아무 것도 얻을 수 없습니다. – asutherland