资讯专栏INFORMATION COLUMN

js生成及下载浏览器端的文件-Eric

dreamans / 1838人阅读

摘要:使用生成及下载浏览器端的文件前言之前写了一篇文章一次下载多个文件的解决方案中写了如何下载服务器端的文件支持连续下载多个,今天和大家分享下如何在浏览器端生成文件并下载。

使用js生成及下载浏览器端的文件-Eric

前言

之前写了一篇文章一次下载多个文件的解决方案中写了如何下载服务器端的文件(支持连续下载多个),今天和大家分享下如何在浏览器端生成文件并下载。

场景

如果线上经常出现一些偶发性问题,本地又不好排查,我们只好添加一些追踪日志,当出现问题的时候我们能根据日志进行排查。

解决方案

首先我们先明确一点,IE浏览器不支持直接下载文件(禁用了反向和正向缓存),我们需要使用另存为功能,google浏览器我们可以直接下载。如果是为了记录日志,我们一般选择txt文件或者html文件(可以加样式,排版)。

代码

const downloadErrorLog = (fileName, content) => {
    // IE
    if(!!window.ActiveXObject || "ActiveXObject" in window) {
        var winname = window.open("", "_blank");
        winname.document.open("text/html", "replace");
        winname.document.writeln(content);// 如果是jsx代码,记得转化为html
        winname.document.execCommand("saveas","", fileName);
        winname.close();
    }else{
        let aLink = document.createElement("a");
        aLink.download = fileName;
        aLink.href = "data:text/plain," + content; // 切记,content只能是字符串,如果是html元素,记得使用.innerHTML转换
        aLink.click(); 
    }
}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/100847.html

相关文章

  • 前端全栈之路--搭建生产环境的linux+nodejs+express的web服务器

    摘要:并以一个实际线上生产的服务器例子为记录蓝本。开发环境还好,但这显然不是一个正式生产环境所能容忍的。这才是一个生产环境应 前言小序 以前我是个纯前端,就是很纯的那种。切切图,写写html、css布局;到后来写js,封装插件、组件;再后来公司没人力了,又要写后台,当时听说PHP是世界上最好的语言...,还学了php,会写一些php后台和myslq。后来还是因为公司没人了,又当起了运维,当时...

    wthee 评论0 收藏0
  • 2019 年值得学习的顶级 JavaScript 框架与主题

    摘要:我们的目标是找出最有职业投资回报率的主题和技术。比特币在几年内增长了若干个量级。比特币倍拐点在这个图表中,每个箭头始于倍点,指向价格修正后的最低点。 showImg(https://segmentfault.com/img/remote/1460000017919159); 图:Jon Glittenberg Happy New Year 2019 (CC BY 2.0) 又到了一年的...

    legendaryedu 评论0 收藏0
  • 形象化模拟作用域链,深入理解js作用域、闭包

    摘要:至此作用域链创建完毕。好了,通过深入理解作用域链,我们能跟好的理解的运行机制和闭包的原理。 前言 理解javascript中的作用域和作用域链对我们理解js这们语言。这次想深入的聊下关于js执行的内部机制,主要讨论下,作用域,作用域链,闭包的概念。为了更好的理解这些东西,我模拟了当一个函数执行时,js引擎做了哪些事情--那些我们看不见的动作。 关键词: 执行环境 作用域 作用域链 变...

    txgcwm 评论0 收藏0
  • 一次下载多个文件的解决思路-JS

    摘要:一次下载多个文件的解决思路真实经历最近开发项目需要做文件下载,想想挺简单的,之前也做过,后台提供下载接口,前端使用就行了呗。不过开发的时候发现,有些文件有附属文件,点击下载按钮需要下载两个文件,而且不能使用压缩包的形式。 一次下载多个文件的解决思路(iframe) - Eric 真实经历 最近开发项目需要做文件下载,想想挺简单的,之前也做过,后台提供下载接口,前端使用window.l...

    techstay 评论0 收藏0
  • 一次下载多个文件的解决思路-JS

    摘要:一次下载多个文件的解决思路真实经历最近开发项目需要做文件下载,想想挺简单的,之前也做过,后台提供下载接口,前端使用就行了呗。不过开发的时候发现,有些文件有附属文件,点击下载按钮需要下载两个文件,而且不能使用压缩包的形式。 一次下载多个文件的解决思路(iframe) - Eric 真实经历 最近开发项目需要做文件下载,想想挺简单的,之前也做过,后台提供下载接口,前端使用window.l...

    HitenDev 评论0 收藏0

发表评论

0条评论

dreamans

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<