前端手动触发点击事件,下载图片

版权声明:多总结,帮助自己的同时也在帮助别人!留下意见和看法,让技术动起来! https://blog.csdn.net/qiphon3650/article/details/82871663

下面是一个示例,在浏览器里测试没有问题,但是微信h5 不能实现下载,如果有大神,望指点

<!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>

<body>
<h1>Mark by qiphon!</h1>
    <script>
        function downloadIamge(imgsrc, name) { //下载图片地址和图片名
            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"); //得到图片的base64编码数据
				//console.log(url)
                var a = document.createElement("a"); // 生成一个a元素
                var event = new MouseEvent("click"); // 创建一个单击事件
                a.download = name || "photo"; // 设置图片名称
                a.href = url; // 将生成的URL设置为a.href属性
                var b = a.dispatchEvent(event); // 触发a的单击事件IE下使用fireEvent    高级浏览器下使用dispatchEvent 
				console.log(b)  // true
            };
            image.src = imgsrc;
        };

        function downs() {
            this.downloadIamge('https://ss1.bdstatic.com/70cFuXSh_Q1YnxGkpoWK1HF6hhy/it/u=415293130,2419074865&fm=27&gp=0.jpg', '23')
        };
        window.onclick = function() {
			//alert(11)
            downs();
        };
    </script>
</body>

</html>

猜你喜欢

转载自blog.csdn.net/qiphon3650/article/details/82871663