【JS函数】

文本内容转变成Blob 下载

/**
 * @brief       文本内容转变成Blob 下载
 * @param[in]   content     下载内容 文本
 * @param[in]   filename    文件名
 * @return      None
 */
export default function (content, filename) {
// const TextToBlobDownload = function (file) {
    (function (content, filename) { // ctx.fillStyle = lay[i].bgColor;
        if ('download' in document.createElement('a')) {
            // 作为文件下载
            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);
        } else {
            alert('浏览器不支持');
        }
    })(content, filename);
}

URL内容转变成Blob 下载

/**
 * @brief       URL内容转变成Blob 下载
 * @param[in]   url     下载链接
 * @param[in]   name    文件名
 * @return      None
 */
export default function (url, name) {
// const UrlToBlobDownload = function (file) {
    (function (url, name) {
        name = name || "下载.png";
        var oA = document.createElement("a");
        console.log(name);
        oA.download = name; // 设置下载的文件名,默认是'下载'
        oA.href = url;
        document.body.appendChild(oA);
        oA.click();
        oA.remove(); // 下载之后把创建的元素删除
    })(url, name);
}

input File的内容转变成Blob链接

/**
 * @brief       input File的内容转变成Blob链接
 * @param[in]   file    文件信息
 * @return      None
 */
export default function (file) {
// const InputFileToBlobUrl = function (file) {
    var url = null;
    if (window.createObjectURL != undefined) {
        //basic
        url = window.createObjectURL(file);
    } else if (window.URL != undefined) {
        //mozilla(firefox)兼容火狐
        url = window.URL.createObjectURL(file);
    } else if (window.webkitURL != undefined) {
        //webkit or chrome
        url = window.webkitURL.createObjectURL(file);
    }
    return url;
}

计算字符串 字符个数 中文算两个字符 英文一个字符

/**
 * @brief       计算字符串 字符个数  中文算两个字符 英文一个字符
 * @param[in]   str		字符串文本
 * @return      number	字符串字符个数
 */
export default function (str) {
// const StrLenChinese = function (str) {
    var len = 0;
    for (var i = 0; i < str.length; i++) {
        var c = str.charCodeAt(i);
        //单字节加1   
        if ((c >= 0x0001 && c <= 0x007e) || (0xff60 <= c && c <= 0xff9f)) {
            len++;
        }
        else {
            len += 2;
        }
    }
    return len;
}  

异步操作,得到promise input File 的JSON文件 内容转变成JSON数据

export default function (filePath, code) {
    // const InputFileToBlobUrl = function (filePath, code) {
    code = code || "UTF-8";
    let p = new Promise((resolve, reject) => {
        var reader = new FileReader();
        reader.readAsText(filePath, code);
        reader.onload = (e) => {
            let json = e.target.result;
            let tag = false;
            let obj = null;
            try {
                obj = JSON.parse(json);
                tag = true;
            } catch (error) {
                reject(error);
            }
            if (tag) {
                resolve(obj);
            } else {
                reject(error);
            }
        };
    });
    return p;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值