jquery日志模块 包含生成txt文件(不需要后台)

先整个DIV装日志 样式随便整

<div id="model_logs" style="width:500px;height:700px;padding:10px;"></div>

js: 

和后台交互 需要打印的日志调用outLogs("需要打印的日志");

我写的新日志加在最前面一行 需要用换顺序的prepend改成append丢日志div就行了

//输入日志
function outLogs(log) {
    var myDate = dateFormat("YYYY mm-dd HH:MM:SS", new Date());
    $("#model_logs").prepend('<p>[' + myDate + '] ' + log + '</p>');
}


//生成下载日志文件
function downloadLogs() {
    var logs = $("#model_logs").html().replace(/<p>/g, "");
    //替换</p>为"\r\n" windows txt中的换行符
    logs = logs.replace(/<\/p>/g, "\r\n");
    var filename = dateFormat("YYYYmmddHHMMSS", new Date()) + ".txt";
    var element = document.createElement('a');
    element.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(logs));
    element.setAttribute('download', filename);
    element.style.display = 'none';
    document.body.appendChild(element);
    element.click();
    document.body.removeChild(element);
}

//格式化时间
function dateFormat(fmt, date) {
    let ret;
    const opt = {
        "Y+": date.getFullYear().toString(),        // 年
        "m+": (date.getMonth() + 1).toString(),     // 月
        "d+": date.getDate().toString(),            // 日
        "H+": date.getHours().toString(),           // 时
        "M+": date.getMinutes().toString(),         // 分
        "S+": date.getSeconds().toString()          // 秒
        // 有其他格式化字符需求可以继续添加,必须转化成字符串
    };
    for (let k in opt) {
        ret = new RegExp("(" + k + ")").exec(fmt);
        if (ret) {
            fmt = fmt.replace(ret[1], (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, "0")))
        }
        ;
    }
    ;
    return fmt;
}

界面:

调用downloadLogs()导出的TXT如图:

顺颂时祺

猜你喜欢

转载自blog.csdn.net/weixin_40195422/article/details/107187053