2015-06-16 2 views
9

Я использую для отображения текстового файла:Почему .txt файл в <iframe> загружается, а не отображается?

<div class="document-view"> 
    <img src="img/302.GIF" /> 
</div> 

$(window).load(function() { 
    <s:if test="extention.equalsIgnoreCase('txt')"> 
     element = '<iframe class="iframe" src="/dmsrepo/<s:property value="docLocation"/>" />'; 
    </s:if> 

    $('.document-view').html(element); 
}); 

Когда я инспектировать элемент в браузере я могу увидеть местоположение файла.

<iframe class="iframe" src="/dmsrepo/Legal Doc Type/LegalDocType_123456789_1.0.txt" /> 

Но текстовый файл загружается в Chrome, Firefox и IE.

Как решить эту проблему?


EDIT: вы можете воспроизвести поведение в следующей скрипке, что странно влияет только Firefox, для каждой загрузки страницы после первой.

Просто open the page, а затем нажмите Выполнить.

Примечание: оно также влияет на первую нагрузку, если включен модуль Firebug Net.

+0

@AndreaLigios Nope..если файл загружен .. –

+1

@AndreaLigios. Вы правы. Он загружается, когда я обновляю страницу в firefox. Но никаких проблем в IE или хроме. –

ответ

2

Это проблема с файлом. он не форматируется как html. потому что у него есть некоторые специальные символы юникода (например) в конце чтения файла. если текстовый ответ имеет особый характер. он не смог проанализировать ответ как html, встроенный в iframe.

вы можете проверить этот пример:

<iframe src='http://humanstxt.org/humans.txt' /> </iframe>

3

потому что браузер понимает только html. Измените расширение файла на .html
или используйте язык на стороне сервера, например php, и используя функцию file_get_contents(), вы можете отображать текстовый файл в браузере.

+3

Тогда почему это работает на Chrome, IE и т. Д.? А также на Firefox в первый раз? –

+0