【问题标题】:Download attribute in <a> tag doesn't work when file URL called from sub domain当从子域调用文件 URL 时,<a> 标记中的下载属性不起作用
【发布时间】:2018-10-31 20:40:45
【问题描述】:

我有一个博客here,我在其中使用了带有download 属性的HTML 文件的锚标记(&lt;a&gt;):

<a href="http://www.idevelopweb.site/newsletters/welcome-simple/welcome-simple.html" download>Download it here <i class="fa fa-download" aria-hidden="true"></i></a>

截图:

预期:当用户点击时,应该打开对话框下载文件。

但是,它会导航到文件。 AFAIK,它工作得更早。不知道发生了什么,或者我错过了什么?根据w3schools example,允许使用“.html”文件。

如果不使用 JavaScript,我们将不胜感激。

编辑: 该博客位于subdomain (http://blog.idevelopweb.site/) 中,我正在调用位于root directory (http://www.idevelopweb.site/) 中的HTML 文件,因此我使用了绝对路径。

【问题讨论】:

标签: css html


【解决方案1】:

在你的代码中

<a href="http://www.idevelopweb.site/newsletters/welcome-simple/welcome-simple.html" download>Download it here <i class="fa fa-download" aria-hidden="true"></i></a>

href 包含网页的链接,而不是需要下载的数据、图像或文件。使用锚标签的下载属性无法下载网页,格式如下:

<a href= "--link of image or file to be downloaded--"  download > Download </a>

例如:

<a href="/images/myw3schoolsimage.jpg" download> Download </a>

这里下载myw3schoolsimage.jpg图片

【讨论】:

  • .html 文件是允许的,我们可以使用它
  • 我还没有找到“错误陷阱”下载链接的方法。假设文件不再存在。应该是一种让 javascript 显示警报的方法
【解决方案2】:

点击链接时下载文件(而不是导航到文件):

<a href="link" download="logo">

注意:Edge 版本 12、IE、Safari 10(及更早版本)或 Opera 版本 12(及更早版本)不支持下载属性

【讨论】:

    【解决方案3】:

    我可以引导你到here

    您的问题是下载属性的同源策略。所以要么使用相同的url,要么使用相对路径。

    【讨论】:

    • 是否也适用于子域
    猜你喜欢
    • 2017-09-20
    • 1970-01-01
    • 2013-08-26
    • 1970-01-01
    • 2018-09-20
    • 1970-01-01
    • 2016-02-27
    • 2021-05-17
    相关资源
    最近更新 更多