• HTML5 a标签的down属性进行图片下载


    a标签中的down属性时HTML5新增的属性,此属性指示浏览器下载URL而不是导航到URL,因此将提示用户将其保存为本地文件。目前该属性的兼容性如下:

    具体代码实现:

     1 /*
     2   主要原理:利用a标签的download属性以及canvas的toDataURL()
     3   selector: 图片的选择器
     4   name:被下载图片的命名
     5 */
     6 downloadPicture (selector, name) {
     7   let image = new Image()
     8   // 解决跨域 Canvas 污染问题
     9   image.setAttribute('crossOrigin', 'anonymous')
    10   image.onload = function () {
    11     // 创建一个canvas标签
    12     let canvas = document.createElement('canvas')
    13     // 设置canvas的宽高
    14     canvas.width = image.width
    15     canvas.height = image.height
    16     // 获取canvas的2d界面
    17     let context = canvas.getContext('2d')
    18     // 把图片画在canvas上
    19     context.drawImage(image, 0, 0, 200, 200)
    20     // 把canvas的内容转化为base64格式
    21     let url = canvas.toDataURL('image/png')
    22 
    23     // 生成一个a元素
    24     let a = document.createElement('a')
    25     // 创建一个单击事件
    26     let event = new MouseEvent('click')
    27 
    28     // 将a的download属性设置为我们想要下载的图片名称,若name不存在则使用‘下载图片名称’作为默认名称
    29     a.download = name || '下载图片名称'
    30     // 将生成的URL设置为a.href属性
    31     a.href = url
    32 
    33     // 触发a的单击事件
    34     a.dispatchEvent(event)
    35   }
    36   // 获取img上的src值,赋值之后,完成之后会调用onload事件
    37   image.src = document.querySelector(selector).src
    38 }
  • 相关阅读:
    VueRouter认识
    vuejs组件
    vue初级使用
    Apache Shiro初认识
    解决表单提交的数据丢失问题
    浅析SpringDataJpa继承结构
    HTTP Status 500
    Eclipse快捷键
    JavaScript(JS)的简单使用
    mysql 函数 GROUP_CONCAT 单元格中最长字符串和excel导出问题
  • 原文地址:https://www.cnblogs.com/llcdxh/p/9318837.html
Copyright © 2020-2023  润新知