首页 > 解决方案 > `a` 标记中的下载属性不起作用

问题描述

我使用 jquery 在我的代码中使用了下载属性。它不工作

data = /images/myw3schoolsimage.jpg
a = $('<a>').attr('href', data).attr('download', 'image.jpg').attr('id', 'sample').attr('target', '_blank').appendTo('body')
a[0].click()
a.remove()

其余的属性工作正常。但只有下载属性不起作用。

在此处输入图像描述

为什么我得到这个?

标签: javascriptjqueryhtml

解决方案


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

它不起作用的一个原因是您的文件路径不正确。
检查您的文件是否存在。
这不是正确的语法

attr('download', 'image.jpg');

你应该这样做:

attr("download", true);

这是一个工作代码:
我使用了来自 w3schools 的示例图像

var data = 'https://www.w3schools.com/images/myw3schoolsimage.jpg';

var $a = $('<a />').appendTo('body');
$a.attr('id', 'sample');
$a.attr('href', data);
$a.attr("download", true);
$a.attr('target', '_blank');
$a[0].click();
$a.remove();
<html>
<head>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
</head>
<body>


</body>
</html>

在此处输入图像描述


推荐阅读