在动态显示的图像上设置下载属性

4

我正在使用以下代码在页面上显示来自某个网站的长列表图像。我希望能够使用下载HTML5属性,以便单击每个图像都可以下载它。

这是我尝试过的方法:

for (var i = 0; i<arlnData.d.length;i++) {
        var img = document.createElement('img');
        img.src = "https://images.website.com/airvendors/airlines_"+arlnData.d[i].Code+".gif"; 
        img.download ="my image"; 

        //also tried: 
        //img.src = "https://images.website.com/airvendors/airlines_"+arlnData.d[i].Code+".gif";
        document.body.appendChild(img);

        var imageCellspace=document.createElement('br');
        document.body.appendChild(imageCellspace);
}

图片显示正常,但是点击下载不起作用。

这里的正确语法是什么?

2个回答

9

请尝试以下方法:

for (var i = 0; i<arlnData.d.length;i++) {
        var img = document.createElement('img');
        img.src = "https://images.website.com/airvendors/airlines_"+arlnData.d[i].Code+".gif"; 

        var a = document.createElement('a');
        a.href = img.src;
        a.download = 'image.gif';

        a.appendChild(img);

        document.body.appendChild(a);

        var imageCellspace=document.createElement('br');
        document.body.appendChild(imageCellspace);
}
< p > download属性适用于a标签,而不适用于img标签。请参阅文档。< /p >

啊,需要这个链接,太好了。谢谢! - Wesley Smith

1

你需要将你的<img>标签包裹在一个<a>标签内,因为download属性只能用于锚点。

var img = document.createElement('img');
img.src = "https://images.website.com/airvendors/airlines_"+arlnData.d[i].Code+".gif"; 

var a = document.createElement('a');
a.href = img.src;
a.download = "My image name";

a.appendChild(img);
document.body.appendChild(a);

查看MDN的参考资料


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接