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

Car*_*ire 7 html safari download hyperlink

问题: 单击下载内容的链接后,所有其他链接都具有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>
Run Code Online (Sandbox Code Playgroud)

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

复制:

  1. 单击包含下载属性的链接
  2. 下载后,单击同一页面上带有target ="_ blank"的链接,看到它被强制下载而不是在新选项卡中打开.

更新: 我更新了这个问题,希望更好地解释发生了什么.我找到了一种解决方法,但如果我将链接更改为_self而不是_blank,那么下载后它们就会正常工作.

Mat*_*ith 7

关于上面提到的问题,您可以选择下载文件:

在同一窗口中打开文件:

<a href="sample.txt" target="_self">Click to Download</a>
Run Code Online (Sandbox Code Playgroud)

在新窗口中打开文件:

<a href="sample.txt" target="_blank">Click to Download</a>
Run Code Online (Sandbox Code Playgroud)

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

<a href="sample.txt" download>Click to Download</a>
Run Code Online (Sandbox Code Playgroud)

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

<!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>
Run Code Online (Sandbox Code Playgroud)

希望这对你有所帮助!

  • -1:我不认为你仔细阅读了这个问题.问题是"为什么NON下载链接会导致浏览器在使用下载链接后下载".这个问题已经证明了这个答案中包含的知识.问题是Safari特有的. (2认同)

Car*_*ire 1

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