为什么 <iframe> 中的 .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 中下载。

如何解决这个问题?


编辑:您可以重现以下小提琴中的行为,奇怪的是,对于第一个页面之后的每个页面加载,它只影响 Firefox。

只需 打开页面,然后按 “运行”

注意:如果 Firebug Net 模块被激活,它也会影响第一次加载。

原文由 Prince Radhakrishnan 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.9k
2 个回答

这是文件的问题。它没有格式化为 html。因为它在文件读取末尾有一些特殊的 unicode(例如)字符。如果文本响应具有这样的特殊字符。它无法将响应解析为 iframe 中嵌入的 html。

你可以检查这个例子:

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

原文由 Paraneetharan Saravanaperumal 发布,翻译遵循 CC BY-SA 3.0 许可协议

因为浏览器只能理解 html。将您的文件扩展名更改为 .html

或使用像 php 这样的服务器端语言并使用 file_get_contents() 函数,您可以将文本文件显示到浏览器。

原文由 Unni Babu 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题