a标签下载图片

a标签能用做下载图片功能,主要是标签有download属性,加上download后会指示浏览器下载而不是导航。但是这个属性是HTML5属性,仅兼容版本较高的浏览器,兼容性如下:

可以看到,download属性完全不兼容ie的,所以要单独做ie的兼容

<a href="../imgs/spider-man/swiper/1.jpg" download="1.jpg" class="downBtn">下载<img src="../imgs/spider-man/download.png"></a>
$('.downBtn').on('click', function (e) {
   if (window.navigator.msSaveOrOpenBlob) {
      e.preventDefault()
      var url = $(this).attr('href')
      var name = $(this).attr('download')

      const xhr = new XMLHttpRequest()
      xhr.open('GET', url, true)
      xhr.responseType = 'blob'
      xhr.onload = function () {
          if (xhr.status === 200) {
              window.navigator.msSaveOrOpenBlob(xhr.response, name)
          }
      }
      xhr.send()
   }
})

这样就可以完美兼容ie了。

手机端的话不建议做点击下载图片的功能 ,因为微信浏览器虽然支持download属性,但经过测试当a标签加上download后,在微信浏览器点击没有任何反应,所以手机端建议直接让用户长按图片下载。

检测浏览器是否支持download属性可以这样做:

var isSupportDownload = 'download' in document.createElement('a');
console.log(isSupportDownload)
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值