zoukankan      html  css  js  c++  java
  • download 属性 图片下载

    1.使用场景

    对浏览器 识别/不识别 的文件下载

    2.核心代码

    var eleTextarea = document.querySelector('textarea');
    var eleButton = document.querySelector('input[type="button"]');
    
    // 下载文件方法
    var funDownload = function (content, filename) {
        var eleLink = document.createElement('a');
        eleLink.download = filename;
        eleLink.style.display = 'none';
        // 字符内容转变成blob地址
        var blob = new Blob([content]);
        eleLink.href = URL.createObjectURL(blob);
        // 触发点击
        document.body.appendChild(eleLink);
        eleLink.click();
        // 然后移除
        document.body.removeChild(eleLink);
    };
    
    if ('download' in document.createElement('a')) {
        // 作为test.html文件下载
        eleButton.addEventListener('click', function () {
            funDownload(eleTextarea.value, 'test.html');    
        });
    } else {
        eleButton.onclick = function () {
            alert('浏览器不支持');    
        };
    }
    View Code

    图片下载

    function downloadIamge(imgsrc, name) { //下载图片地址和图片名
        let image = new Image();
        // 解决跨域 Canvas 污染问题
        image.setAttribute("crossOrigin", "anonymous");
        image.onload = function () {
            let canvas = document.createElement("canvas");
            canvas.width = image.width;
            canvas.height = image.height;
            let context = canvas.getContext("2d");
            context.drawImage(image, 0, 0, image.width, image.height);
            let url = canvas.toDataURL("image/png"); //得到图片的base64编码数据
            let a = document.createElement("a"); // 生成一个a元素
            let event = new MouseEvent("click"); // 创建一个单击事件
            a.download = name || "photo"; // 设置图片名称
            a.href = url; // 将生成的URL设置为a.href属性
            a.dispatchEvent(event); // 触发a的单击事件
        };
        image.src = imgsrc;
    }
    View Code

    3.兼容性

    4.参考链接

  • 相关阅读:
    Elasticsearch
    区块链 blockchain
    IM协议
    MQ,互联网架构解耦神器
    服务中的 API 网关(API Gateway)
    OSI七层与TCP/IP五层网络架构详解
    JQ input标签限制输入数字或字母
    c:forEach用法
    jquery在线引用
    JSONObject使用方法
  • 原文地址:https://www.cnblogs.com/justSmile2/p/10436603.html
Copyright © 2011-2022 走看看