Vue a标签实现点击下载图片,不直接打开

在main.js里加指令

Vue.directive('down', {

  inserted: (el, binding) => {

    el.style.cssText = 'cursor: pointer;color:write;'

    el.addEventListener('click', () => {

      console.log(binding.value)

      let link = document.createElement('a')

      let url = binding.value

      // 这里是将url转成blob地址,

      fetch(url).then(res => res.blob()).then(blob => { // 将链接地址字符内容转变成blob地址

        link.href = URL.createObjectURL(blob)

        console.log(link.href)

        link.download = ''

        document.body.appendChild(link)

        link.click()

      })

    })

  }

})

在页面中使用,直接使用v-down就能实现下载功能

<div v-down="qrCodeUrl" >

        <img :src="qrCodeUrl" alt="会议签到二维码" width="300" height="300">

        <span class="info">(点击图片立即下载)</span>

      </div>

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容