2014-09-02 5 views
-1

글쎄, 나는 pre 태그 안에있는 HTML을 가져 와서 읽을 수있는 텍스트로 바꾸고 싶다.스크립트 html 태그를 일반 텍스트로 바꾸기

var pre = document.getElementsByTagName("pre"); 

for(i in pre) { 
    pre[i].textContent = pre[i].innerHTML; 
} 

을하지만 그것은 그들이 텍스트로 전환하기 전에로드하는 스크립트 태그를 작동하지 않습니다 :

내 코드는 대부분의 일을 위해 노력하고 있습니다. 심지어 가능하다면 전체 라이브러리를 사용하고 싶지 않습니다.

예. <pre> 태그 내에 있더라도 다음 경고가 표시됩니다.

<pre> 
    <script>window.alert("Test!");</script> 
<pre> 

의견이 있으십니까?

+1

해당 스크립트가 '

'의 내용을 조작합니까? –
                        
                            
                                
                            
                        
                    

+0

'script' 태그가 실행되는 것을 막을 수 있다고 생각하지 않습니다. 브라우저가'script' 태그를 만나면 바로 실행합니다. – bzeaman

+0

아니요, ''과 같이 실행하고 싶지 않지만 일반 텍스트로만 표시됩니다. –

답변

1

일부 태그를 읽을 수있게하려면 <&lt;>&gt;으로 변경하십시오. 브라우저는 아무 것도 실행하지 않고 사용자는 여전히 <script>alert(321)</script>을 볼 수 있습니다.

+0

이렇게하면 정규식을 제안 해 주시겠습니까? –

+0

@PopeyGilbert 정규 표현식 또는 간단한 대체가 가능합니다. – Justinas

+0

이 질문에 대한 답변이 아닙니다. "내 코드는 대부분의 작업에 사용됩니다." 'script' 태그를 제외하고는 이미 작동하고 있습니다. 변경되기 전에 실행되고 있습니다. – bzeaman

0

script 태그가 발생하면 해당 태그가 실행됩니다. 즉, pre 태그의 script 태그가 처리되기 전에 '이스케이프 처리'되어야합니다.

이 작업을 수행하는 한 가지 방법은 처리되기 전에 pre의 내용을 이스케이프 처리하는 것입니다 (예 : PHP).

로드하기 전에 pre 태그에 도달 할 수 없으며 이미로드되었을 때 script 태그가 실행되지 않도록 할 수 없습니다.

관련 문제