单击Safari中的下载链接会导致所有target = _blank链接在单击时下载,是否有解决方法?

时间:2018-01-19 21:47:33

标签: html hyperlink download safari

问题: 单击下载内容的链接后,所有其他链接都具有target =“_ blank”,并且在单击时不会下载attr下载而不是在新选项卡中打开。

浏览器: Safari 11.0.2

<!DOCTYPE html>
<html>

  <head>
    <link rel="stylesheet" href="style.css">
    <script src="script.js"></script>
  </head>

  <body>
    <h3>Instructions</h3>
    <ul>
      <li>Click <a href='sample.txt' target='_blank'>ME</a> (download NOT present) to see page load in new tab then come back to this page</li>
      <li>Click <a href='sample.txt' download='sample.txt'>ME</a> (download PRESENT) to see it downloaded</li>
      <li>Click <a href='sample.txt' target='_blank'>ME</a> (download NOT present).  Safari forces this link to download</li>
    </ul>
  </body>

</html>

代码示例: https://embed.plnkr.co/IscC6LTTmpEbAMLrxyYJ/

复制

  1. 点击包含下载属性的链接
  2. 下载后,点击同一页面上带有target =“_ blank”的链接,看到它被强制下载而不是在新标签页中打开。
  3. 更新 我更新了这个问题,希望更好地解释发生了什么。我找到了一种解决方法,但是如果我将链接更改为_self而不是_blank,那么下载后它们会正常工作。

2 个答案:

答案 0 :(得分:7)

关于上述问题,您可以选择下载文件:

在同一窗口中打开文件:

<a href="sample.txt" target="_self">Click to Download</a>

在新窗口中打开文件:

<a href="sample.txt" target="_blank">Click to Download</a>

强制文件下载窗口:
但是,如果您想通过提示下载弹出框(打开或保存)强制下载文件,那么您需要做的就是在链接中添加“下载”,如下所示:

<a href="sample.txt" download>Click to Download</a>

因此,您编辑的代码可能如下所示:

<!DOCTYPE html>
<html>

  <head>
    <link rel="stylesheet" href="style.css">
    <script src="script.js"></script>
  </head>

  <body>
    <h3>Instructions</h3>
    <ul>
      <li>Click <a href='sample.txt' target='_blank'>ME</a> (download NOT present) to see page load in new tab then come back to this page</li>
      <li>Click <a href='sample.txt' download='sample.txt'>ME</a> (download PRESENT) to see it downloaded</li>
      <li>Click <a href='sample.txt' download>ME</a> (download NOT present).  Safari forces this link to download</li>
    </ul>
  </body>

</html>

希望这能帮到你!

答案 1 :(得分:1)

不是一个真正的答案,但是在向苹果报告问题并等待之后,我们现在有了Safari 11.1.1,它似乎已经解决了该问题,因此标记已解决。