前端js下载txt文本

​ 在web应用开发中下载为文本比较少,但是对于一些小说网站应用应该会比较多的!

闲话短说,直接上代码!

1、将下面代码这个保存为一个xxx.js

var saveAs = saveAs || (function(view) {"use strict";// IE <10 is explicitly unsupportedif (typeof view === "undefined" || typeof navigator !== "undefined" && /MSIE [1-9]\./.test(navigator.userAgent)) {return;}vardoc = view.document// only get URL when necessary in case Blob.js hasn't overridden it yet, get_URL = function() {return view.URL || view.webkitURL || view;}, save_link = doc.createElementNS("http://www.w3.org/1999/xhtml", "a"), can_use_save_link = "download" in save_link, click = function(node) {var event = new MouseEvent("click");node.dispatchEvent(event);}, is_safari = /constructor/i.test(view.HTMLElement) || view.safari, is_chrome_ios =/CriOS\/[\d]+/.test(navigator.userAgent), throw_outside = function(ex) {(view.setImmediate || view.setTimeout)(function() {throw ex;}, 0);}, force_saveable_type = "application/octet-stream"// the Blob API is fundamentally broken as there is no "downloadfinished" event to subscribe to, arbitrary_revoke_timeout = 1000 * 40 // in ms, revoke = function(file) {var revoker = function() {if (typeof file === "string") { // file is an object URLget_URL().revokeObjectURL(file);} else { // file is a Filefile.remove();}};setTimeout(revoker, arbitrary_revoke_timeout);}, dispatch = function(filesaver, event_types, event) {event_types = [].concat(event_types);var i = event_types.length;while (i--) {var listener = filesaver["on" + event_types[i]];if (typeof listener === "function") {try {listener.call(filesaver, event || filesaver);} catch (ex) {throw_outside(ex);}}}}, auto_bom = function(blob) {// prepend BOM for UTF-8 XML and text/* types (including HTML)// note: your browser will automatically convert UTF-16 U+FEFF to EF BB BFif (/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(blob.type)) {return new Blob([String.fromCharCode(0xFEFF), blob], {type: blob.type});}return blob;}, FileSaver = function(blob, name, no_auto_bom) {if (!no_auto_bom) {blob = auto_bom(blob);}// First try a.download, then web filesystem, then object URLsvarfilesaver = this, type = blob.type, force = type === force_saveable_type, object_url, dispatch_all = function() {dispatch(filesaver, "writestart progress write writeend".split(" "));}// on any filesys errors revert to saving with object URLs, fs_error = function() {if ((is_chrome_ios || (force && is_safari)) && view.FileReader) {// Safari doesn't allow downloading of blob urlsvar reader = new FileReader();reader.onloadend = function() {var url = is_chrome_ios ? reader.result : reader.result.replace(/^data:[^;]*;/, 'data:attachment/file;');var popup = view.open(url, '_blank');if(!popup) view.location.href = url;url=undefined; // release reference before dispatchingfilesaver.readyState = filesaver.DONE;dispatch_all();};reader.readAsDataURL(blob);filesaver.readyState = filesaver.INIT;return;}// don't create more object URLs than neededif (!object_url) {object_url = get_URL().createObjectURL(blob);}if (force) {view.location.href = object_url;} else {var opened = view.open(object_url, "_blank");if (!opened) {// Apple does not allow window.open, see https://developer.apple.com/library/safari/documentation/Tools/Conceptual/SafariExtensionGuide/WorkingwithWindowsandTabs/WorkingwithWindowsandTabs.htmlview.location.href = object_url;}}filesaver.readyState = filesaver.DONE;dispatch_all();revoke(object_url);};filesaver.readyState = filesaver.INIT;if (can_use_save_link) {object_url = get_URL().createObjectURL(blob);setTimeout(function() {save_link.href = object_url;save_link.download = name;click(save_link);dispatch_all();revoke(object_url);filesaver.readyState = filesaver.DONE;});return;}fs_error();}, FS_proto = FileSaver.prototype, saveAs = function(blob, name, no_auto_bom) {return new FileSaver(blob, name || blob.name || "download", no_auto_bom);};// IE 10+ (native saveAs)if (typeof navigator !== "undefined" && navigator.msSaveOrOpenBlob) {return function(blob, name, no_auto_bom) {name = name || blob.name || "download";if (!no_auto_bom) {blob = auto_bom(blob);}return navigator.msSaveOrOpenBlob(blob, name);};}FS_proto.abort = function(){};FS_proto.readyState = FS_proto.INIT = 0;FS_proto.WRITING = 1;FS_proto.DONE = 2;FS_proto.error =FS_proto.onwritestart =FS_proto.onprogress =FS_proto.onwrite =FS_proto.onabort =FS_proto.onerror =FS_proto.onwriteend =null;return saveAs;
}(typeof self !== "undefined" && self|| typeof window !== "undefined" && window|| this.content
));
// `self` is undefined in Firefox for Android content script context
// while `this` is nsIContentFrameMessageManager
// with an attribute `content` that corresponds to the windowif (typeof module !== "undefined" && module.exports) {module.exports.saveAs = saveAs;
} else if ((typeof define !== "undefined" && define !== null) && (define.amd !== null)) {define("FileSaver.js", function() {return saveAs;});
}

2、我们在页面中调用这个js

<!DOCTYPE html>
<html><head><meta charset="UTF-8"><title></title><script type="text/javascript" src="js/jquery.min-1.11.3.js" ></script><script type="text/javascript" src="js/xxx.js" ></script></head><body><button onclick="">保存为txt格式</button></body><script>window.onload = function(){var blob = new Blob(['123'], {type: "text/plain;charset=utf-8"});saveAs(blob, "文件导出测试.txt")}</script>
</html>

前端js下载txt文本相关推荐

  1. 前端js下载文件压缩包

    工作当中时常会遇到对文件的一些处理,比如下载表格.下载图片.下载文件等,这里说一种下载压缩包的方法. 其实也很简单,需要用到一款插件jszip,官方用法都是有的:https://www.npmjs.c ...

  2. 前端js 下载xls表格

    最近在做的项目中,需要有一个将页面展示的数据下载下来的功能,做爬虫的我感觉到了前端知识的匮乏 面对需求,脑海中最先涌现出的是两个方向来实现 由后端把xls表格制作出来,然后前端只需点击 a标签即可完成 ...

  3. 前端js下载本地模板

    做一件事,要认真,细心,耐心.记忆开始之初,父母,老师都开始教导的真理,现在工作了,这教导还在,但是这些事情却还是没有做好.昨天,老大审查代码,发现之前的写的下载模板过于复杂,而且在ie环境下还不能执 ...

  4. 【下载】前端JS下载文件的三种方法。FileSaver解决了PDF下载会先预览的问题。

    文章目录 普通a标签下载 搭配FileSaver的axios异步下载 搭配FileSaver的原生异步下载 后端写入文件流参考 普通a标签下载 这是非异步下载,后端注意不要写@ResponseBody ...

  5. 直接下载txt文件而不是打开它

    js下载txt文件,而不是在浏览器中打开它 使用axios方法下载(关键点在于指定使用blob) downloadTxt(url) {axios.get(url, {responseType: 'bl ...

  6. 前端 json数据转txt文本并下载(前端自定义封装数据并下载文件)

    前端 json数据转txt文本并下载 在工作中,有一次客户要求将图形化的数据转化为txt文件下载 本例中也可前端自定义封装数据并下载文件 其后端传来的数据为json格式,需要前端转化为text数据的形 ...

  7. 前端js华为云obs上传下载文件与进度条的设置

    前端js华为云obs上传下载文件与进度条的设置 首先下载OBS BrowserJS SDK安装包 用git将代码拉到本地 git clone https://github.com/huaweiclou ...

  8. vuejs项目纯js导出word、在线下载富文本内容或者网页另存为word文件

    所有前端导入导出方法集合: 前端必备技能知识:JS导出Blob流文件为Excel表格.Vue.js使用Blob的方式实现excel表格的下载(流文件下载)_勤动手多动脑少说多做厚积薄发-CSDN博客_ ...

  9. 让TXT文本等其他任意格式的文件,不在IE中打开,而直接下载的方法

    ASP实现不打开直接下载txt,jpg...类文件 代码: <% Const ForReading=1 Const TristateTrue=-1 Const FILE_TRANSFER_SIZ ...

最新文章

  1. 【机器视觉案例】(10) AI视觉搭积木,手势移动虚拟物体,附python完整代码
  2. 图形推理1000题pdf_笔试|图形推理题满分攻略
  3. Matlab求方差,均值,均方差,协方差的函数
  4. 微信小程序实战–集阅读与电影于一体的小程序项目(六)
  5. 轮播图js怎么设置图片自适应大小
  6. 央视新闻联合百度智能云打造的首个“冬奥AI手语主播”来了
  7. 电脑技巧:分享七个解决烦人的弹窗广告的小技巧
  8. 达梦数据库删除用户_达梦数据库的表空间及用户管理
  9. 15分钟搞定OLAP查询引擎Phoenix
  10. echarts 生成 迁徙图_Echarts地图的迁徙图
  11. SyncToy -- 微软同步工具
  12. Excel宏编程,给出2列进行去重合并
  13. APP如何在应用商店获取较高的排名?
  14. 计算机网络的概念,组成和分类;计算机与网络信息安全的概念和防控.,计算机二级MS试题...
  15. 微信中下载app无反应 微信浏览器无法apk下载链接方案
  16. Linux系统DB2数据库安装手册
  17. 什么是黑盒测试和白盒测试的方法以及优缺点
  18. 音视频进阶教程|实现直播间的自定义视频渲染
  19. 极战世界杯圆满落幕,中国赛事品牌跻身世界前列
  20. C++学习——CMatrix类的设计与实现

热门文章

  1. 青海国家湿地公园分布及功能区划
  2. Clojure学习1---基础语法
  3. CodecPrivateData 解析
  4. 超详细的A-level课程介绍
  5. 深澜portal认证协议参数分析及模拟登陆的golang实现
  6. matlab中字母重音符号,支持重音合成的汉语语音合成系统
  7. 超简单案例:分层卡方检验怎么做?
  8. 首款英特尔EVO笔记本面世:华硕灵耀X新品上市
  9. 大促之前全链路压测原理
  10. 进公司一年,怎么跟老板提涨工资?