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

具体代码实现:
/*
主要原理:利用a标签的download属性以及canvas的toDataURL()
selector: 图片的选择器
name:被下载图片的命名
*/
downloadPicture (selector, name) {
let image = new Image()
// 解决跨域 Canvas 污染问题
image.setAttribute('crossOrigin', 'anonymous')
image.onload = function () {
// 创建一个canvas标签
let canvas = document.createElement('canvas')
// 设置canvas的宽高
canvas.width = image.width
canvas.height = image.height
// 获取canvas的2d界面
let context = canvas.getContext('2d')
// 把图片画在canvas上
context.drawImage(image, 0, 0, 200, 200)
// 把canvas的内容转化为base64格式
let url = canvas.toDataURL('image/png') // 生成一个a元素
let a = document.createElement('a')
// 创建一个单击事件
let event = new MouseEvent('click') // 将a的download属性设置为我们想要下载的图片名称,若name不存在则使用‘下载图片名称’作为默认名称
a.download = name || '下载图片名称'
// 将生成的URL设置为a.href属性
a.href = url // 触发a的单击事件
a.dispatchEvent(event)
}
// 获取img上的src值,赋值之后,完成之后会调用onload事件
image.src = document.querySelector(selector).src
}
HTML5 a标签的down属性进行图片下载的更多相关文章
- HTML5 <a>标签的ping属性用法
随着移动互联网用户井喷式的增长,web前端开发中的HTML5在近几年备受瞩目,越来越多的人从事html5开发相关工作.今天小编也来凑个热闹,和大家一起来谈谈HTML5中<a>标签的ping ...
- [转]HTML5 script 标签的 crossorigin 属性到底有什么用?
HTML5 script 标签的 crossorigin 属性到底有什么用? 最近Bootstrap 4已经正式发布了,可能已经有爱尝鲜的小伙伴在 alpha 阶段就尝试过 BS4.不过今天要说的不是 ...
- HTML5 a标签的download属性
介绍一个HTML5的新特性 a标签的download属性: 目前市场上面支持的浏览器有限: html: <!DOCTYPE html> <html> <body> ...
- jQuery --- 利用a标签的download属性下载文件!
最近遇到一个项目,需要有点击下载文件的功能. 由于文件格式是多种的,对于 rar / zip / rtf / doc / xlsx / jpg等. 点击下载有的是直接跳转到后进行下载,但有的是打开进行 ...
- HTML5 <a>标签download 属性
一.简单实例 <a href="../images/1.jpg" download="下载图片.jpg"> 点击按钮下载 </a> 二. ...
- 从零开始学习前端开发 — 10、HTML5新标签及表单控件属性和属性值
一.html5新增标签 1.结构性标签 header 定义网页的头部 nav 定义网页的导航 footer 定义网页的底部 section 定义网页的某个区域 article 定义网页中的一篇文章 a ...
- 认识HTML5中的新标签与新属性
前端之HTML5,CSS3(一) HTML5中常用内容标签 header标签 header标签定义文档的页眉,基本语法:<header>content</header>. na ...
- HTML5新标签与特性---新表单+新属性----综合案例1
HTML5新标签与特性 兼容性问题 (ie9 以上的版本) 文档类型设定 document HTML: sublime 输入 html:4s XHTML: sublime 输入 html:xt HTM ...
- a 标签的download 属性在谷歌浏览器下无法下载图片,如何处理?
a 标签的download属性在下载图片文件的时候是如何的方便,可是可是谷歌浏览器不支持下载,而是下载打开新窗口预览图片.这个兼容性问题如何解决呢? 了解了一番,HTMLCanvasElement.t ...
随机推荐
- Codeforces Round #586 (Div. 1 + Div. 2) C. Substring Game in the Lesson
链接: https://codeforces.com/contest/1220/problem/C 题意: Mike and Ann are sitting in the classroom. The ...
- Finding Lane Lines on the Road
Finding Lane Lines on the Road The goals / steps of this project are the following: Make a pipeline ...
- .Net利用cwbx.dll call AS400 program得到数据
calling as400 programs from c# http://forums.asp.net/t/1817332.aspx?calling+as400+programs+from+c+ H ...
- 【poj1733】Parity game--边带权并查集
Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 15776 Accepted: 5964 Description Now ...
- c 判断是否为非控制字符
#include <stdio.h> #include <wctype.h> int main () { ; wchar_t str[] = L"first line ...
- @ConfigurationProperties实现配置注入到实体类
spring boot 使用@ConfigurationProperties 有时候有这样子的情景,我们想把配置文件的信息,读取并自动封装成实体类,这样子,我们在代码里面使用就轻松方便多了,这时候,我 ...
- Python2.x 里解决中文编码的万能钥匙
注意: Python2.x默认编码环境是ASCII,当和取回的数据编码格式不一致时,可能会造成乱码:我们可以指定保存内容的编码格式,一般情况下,我们可以在代码最上方添加 import sys relo ...
- springboot 配置跨越访问
import org.springframework.stereotype.Component; import javax.servlet.*; import javax.servlet.http.H ...
- 如何选CDN:互联网大直播时代的CDN选择指南
转: 如何选CDN:互联网大直播时代的CDN选择指南 from: http://www.chnvideo.com/blog-classic-cdn.html SRS 编码器 如何选CDN:互联网 ...
- 取模的n种情况
一 减法 (a-b)%mod=(a%mod-b%mod+n)%mod; 二 大数 有乘法取模 可推出 如下代码 string s; cin>>s; ,len=s.length(); ;i ...