Loading

js实现点击图片时将图片下载在本地

前段时间,项目有一种需求,就是实现点击图片时,可以将图片下载到本地

直接上干货吧!

首先创建一个index.html

代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<img src="https://pic1.zhimg.com/v2-53f365acc16201ef0248646a3caf55e1_1200x500.jpg" alt="" onclick="downloadIamge('img','自行车女孩')">
<body>
    <script>
    function downloadIamge(selector, name) {
    // 创建一个img标签
    var image = new Image()
    // 解决跨域 Canvas 污染问题
    image.setAttribute('crossOrigin', 'anonymous')
    image.onload = function () {
        var canvas = document.createElement('canvas')
        canvas.width = image.width
        canvas.height = image.height
        var context = canvas.getContext('2d')
        context.drawImage(image, 0, 0, image.width, image.height)
        var url = canvas.toDataURL('image/png')
        // 生成一个a元素
        var a = document.createElement('a')
        // 创建一个单击事件
        var event = new MouseEvent('click')
        // 将a的download属性设置为我们想要下载的图片名称,若name不存在则使用‘下载图片名称’作为默认名称
        a.download = name || 'one' // one是默认的名称
        // 将生成的URL设置为a.href属性
        a.href = url
        // 触发a的单击事件
        a.dispatchEvent(event)
     }
    image.src = document.querySelector(selector).src
}
    </script>
</body>
</html>

 

posted @ 2022-08-28 17:23  Carvers  阅读(724)  评论(0)    收藏  举报