【问题标题】:Open .txt in a new tab on Firefox instead of download by default在 Firefox 的新标签页中打开 .txt,而不是默认下载
【发布时间】:2017-06-09 00:42:55
【问题描述】:

我正在尝试打开一个新选项卡以在单击 txt 文件时显示它的内容。它适用于 Chrome 和 IE(一次),但不适用于 Firefox。

所以基本上我在<a></a> 文件中的<a></a> 标签中添加了target="_blank"

<a class="log" onClick="event.stopPropagation()" style="float:Right;" href="http://localhost/report/Java/16/9/log/buildLog20170124090806‌​.txt" target="_blank">File</a>

在 Chrome 和 IE 上,它会在新标签页中打开,但 在 Firefox 中,它会下载文件。响应 HTTP 标头是:

Cache-Control: no-cache
Connection: Keep-Alive
Content-Length: 0
Content-Type: text/html; charset=UTF-8
Date: Tue, 24 Jan 2017 09:48:51 GMT
Keep-Alive: timeout=5, max=79
Server: Apache/2.4.23 (Win32) OpenSSL/1.0.2h PHP/5.6.28
Set-Cookie: XSRF-TOKEN=DRiYzQxODY5ZGNhZDBiYmI3YmE0Y2UzMzQzZWVmMWViNSJ9; expires=Tue, 24-Jan-2017 11:48:52 GMT; Max-Age=7200; path=/Max-Age=7200; path=/; httponly
X-Powered-By: PHP/5.6.28

如何强制 Firefox 在新标签页中打开它?

我对同一页面中的 HTML 文件使用了相同的语法,并且效果很好。

【问题讨论】:

  • 你发送什么 HTTP 标头?
  • 标题是什么意思? &lt;head&gt;&lt;/head&gt; 标签中有什么?对不起,我是这个 HTML 世界的新手,我正在处理别人的代码......
  • 在 Firefox 中,按 Ctrl+Shift+Q。将打开一个新面板。当您加载链接时,将显示一个新条目。单击它时,您将看到一个包含“响应标头”块的新子窗格。这些是 Web 服务器发回的 HTTP 标头,其中可以包含有关如何处理文件的信息。
  • 这里:Cache-Control: no-cache Connection: Keep-Alive Content-Length: 0 Content-Type: text/html; charset=UTF-8 Date: Tue, 24 Jan 2017 09:48:51 GMT Keep-Alive: timeout=5, max=79 Server: Apache/2.4.23 (Win32) OpenSSL/1.0.2h PHP/5.6.28 Set-Cookie: XSRF-TOKEN=DRiYzQxODY5ZGNhZDBiYmI3YmE0Y2UzMzQzZWVmMWViNSJ9; expires=Tue, 24-Jan-2017 11:48:52 GMT; Max-Age=7200; path=/Max-Age=7200; path=/; httponly X-Powered-By: PHP/5.6.28
  • Content-Length: 0?文件应该是空的吗?

标签: javascript php html firefox cross-browser


【解决方案1】:

你可以尝试用Javascript打开它

<a href="#" onclick="window.open('text.txt', '_blank');">...</a>

【讨论】:

  • 这个解决方案并没有改变我担心的任何事情。
  • 它适用于我,实际上两种可能性都适用于我 -&lt;a href='Scripts/text.txt' target="_blank"&gt;Link 1&lt;/a&gt; -&lt;a href="#" onclick="window.open('text.txt', '_blank');"&gt;Link 2&lt;/a&gt;
  • @bendajo — 如果您无法用原始代码重现问题,那么您没有太多理由认为您的代码会有所作为。这对你没有任何影响。
  • @Quentin 我没想到,对不起,谢谢。
【解决方案2】:

看起来文件&lt;a&gt; 标记不正确。 &lt;a&gt; 没有 src 属性。

<a target="_blank" src="/path/to/file.txt">Download</a>

改用这个:

<a target="_blank" href="/path/to/file.txt">Download</a>

并且由于不同浏览器中的不同行为与它无关

target="_blank" 那部分是正确的

只是路径是导致问题的原因。

使用以下代码可以更好地理解。

<!DOCTYPE html>
<html>
<body>
<a target="_blank" href="C:/Users/sshetty1/Desktop/popup.txt">Download</a>
</body>
</html>

此代码适用于 IE 和 Chrome。

<!DOCTYPE html>
<html>
<body>
<a target="_blank" href="/C:/Users/sshetty1/Desktop/popup.txt">Download</a>
</body>
</html>

这适用于 Chrome 和 Firefox,不适用于 IE。

区别只是因为路径(/之前的C:)

C:/Users/sshetty1/Desktop/popup.txt”和

"/C:/Users/sshetty1/Desktop/popup.txt"

这是每个浏览器理解系统路径的方式。

注意:根据您的系统更改路径并运行示例。

【讨论】:

  • 感谢您的帮助,但它不起作用。首先,我已经在使用href 而不是src。其次,我的不好我没有提到它,该文件是PHP 文件。
猜你喜欢
  • 2022-07-22
  • 2011-04-09
  • 2012-09-01
  • 2012-05-09
  • 2015-06-11
  • 1970-01-01
  • 2021-04-24
  • 2013-06-26
  • 2015-07-13
相关资源
最近更新 更多