2016-08-25 13 views
0

는 I 브라우저는 해당 부호로 왼쪽 브래킷 <, 우측 브래킷> 및 앰퍼샌드 & (/ &된다/& A; & LT)을 인코딩하는 것을 발견 가지고 TXT - 파일 소스은 iframe의 innerHTML을 읽을 때 . 어떻게 이런 일이 일어나지 않게 할 수 있습니까? innerHTML은 < > 태그로도 래핑됩니다.<, > 인코딩에서 브라우저를 중지하는 방법 및 웹 페이지에서 TXT 파일 iframe을 읽을 때?

<div> 
    Hello world! I love M&M's candy. 
</div> 

다음은 iframe :

<iframe id="MyIframe" src="/hello.txt"></iframe> 

그리고 다음 자바 스크립트 :

var MyIframe = document.getElementById('MyIframe'); 
alert(MyIframe.contentWindow.document.innerHTML); 

예를 들어, TXT (안 HTML) 파일 내부에 다음과 내가 가진 가정

다음과 같은 경고 대화 상자가 나타납니다. 보내고 :

<pre> 
    &lt;div&gt;Hello world! I love M&amp;M's candy.&lt;/div&gt; 
</pre> 

가 어떻게이 TXT 파일의 내용이 일에서 자바 스크립트를 중지합니까? 파일의 원시 인코딩되지 않은 내용 만 원합니다.

XMLHTTPRequest를 사용할 수 없습니다.

+0

당신은'textContent' 대신 innerHTML''로 사용할 수 있습니다. 네트워크 로그를 검사 할 때 서버가 텍스트 파일과 함께 보내는 Content-Type은 무엇입니까? – Thomas

+0

@ 토마스 "text/plain; charset = UTF-8" – user3163495

답변

2

.innerHTML을 검색하는 대신 .textContent을 검색하십시오. 인간이 읽을 수있는 형식으로 요소 트리에서 사람이 읽을 수있는 텍스트 만 반환해야합니다. 이 페이지에서 질문에 HTML 샘플 중 하나를 검사하고 개발자 콘솔에 $0.textContent을 작성하여 시험해 볼 수 있습니다.

1

브라우저가 텍스트 파일을 HTML로 변환합니다. https://wordpress.org/plugins/about/readme.txt의 DOM을 검사하면 렌더링 할 때 일반 텍스트 파일이 아닌 HTML임을 알 수 있습니다.

다른 사람들이 제안한대로 MyIframe.contentWindow.document.textContent을 검색하면 HTML 특수 문자가 디코딩되어 브라우저에서 자동으로 인코딩된다는 것을 알게되었습니다.

enter image description here