js如何实现点击下载图片

通常我们知道一个文件的url,在前端我们可以通过代码:

window.open(url)

实现下载文件的功能,但是如何是图片url的话,会新开一个页面,并不会将图片下载,那怎么实现将图片下载下来呢?

1. 方法一

标签.html5的a标签增加了download属性,可利用此属性实现图片下载.

下载图片
  1. 将a标签的href属性指向图片的地址;同时增加download属性;即可实现点击下载.
  2. download属性的属性值选填,代表下载图片的名称,如不填写,则使用href中的图片名称,即图片的原名称.
  3. a标签的download属性目前主流浏览器只有火狐和谷歌支持.

因为上诉方法只有火狐和谷歌支持,所以我们还要兼容其它浏览器

2. 方法二

').appendTo("body"); } //iframe的src属性如不指向图片地址,则手动修改,加载图片 if ($('#IframeReportImg').attr("src") != imgSrc) { $('#IframeReportImg').attr("src",imgSrc); } else { //如指向图片地址,直接调用下载方法 downloadImg(); } } //下载图片的函数 function downloadImg() { //iframe的src属性不为空,调用execCommand(),保存图片 if ($('#IframeReportImg').src != "about:blank") { window.frames["IframeReportImg"].document.execCommand("SaveAs"); } } //接下来进行事件绑定 var aBtn = $(".card .down_btn_a"); if (browserIsIe()) { //是ie等,绑定事件 aBtn.on("click", function() { var imgSrc = $(this).siblings("img").attr("src"); //调用创建iframe的函数 createIframe(imgSrc); }); } else { aBtn.each(function(i,v){ //支持download,添加属性. var imgSrc = $(v).siblings("img").attr("src"); $(v).attr("download",imgSrc); $(v).attr("href",imgSrc); }) }



作者:极客教程
链接:https://www.jianshu.com/p/8ad12eb7e1f8
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

你可能感兴趣的:(js)