本文目录一览:
- JS 下载/导出 csv、excel、txt 、img等文件的方法总结
- 如何用JavaScript实现文件下载?
- js下载txt文件
- 如何使用javascript生成txt格式文件保存到本地,要求跨浏览器支持,怎么做呢?
- 用js或jquery生成本地txt文件的代码
- 如何把js生成txt文本?
JS 下载/导出 csv、excel、txt 、img等文件的方法总结
- 调用后端接口导出文件
- 示例下载接口url
- window.open(url)
会打开一个新窗口,开始下载后会自动关闭新窗口。Safari 下载后没有关闭新窗口。
Chrome、IE、Safari 支持,火狐不支持。 - window.location=url
在当前窗口下载
Chrome、Safari 支持 - iframe
在 HTML 中,iframe 的属性用 src,但在 JS 中,只有部分浏览器支持修改 src(读是没问题),真正通用的是要修改对应框架的 href 值。 - a href="url" download="filename" 点击链接下载
HTML5 中给 a 标签增加了一个 download 属性,只要有这个属性,点击这个链接时浏览器就不在打开链接指向的文件,而是改为下载,目前只有 Chrome、Firefox、Opera、Edge 支持。常用此方法点击下载图片。
IE 既不支持 a 标签的 download 属性也不允许 js 调用 a 标签的 click 方法。
- window.open(url)
- 示例下载接口url
- 前端直接导出文件到本地
- 将数据转成 DataURI 用 a 标签下载
a href="DataURI" download="filename" 点击链接下载/a
Data URI Scheme 是指可以在 Web 页面中包含图片但无需任何额外的 HTTP 请求的一类 URI。Data URI Scheme 一般用于将经过 base64 编码的数据嵌入网页中,从而减少请求资源的链接数。IE8 之前的版本都不支持 data URI scheme。- DataURI 的格式:
生成 DataURI 的方式:encodeURIComponent
使用这种方式,当数据过多时,URI 长度容易超出浏览器限制。encodeURIComponent
常用来转码接口参数,为了避免服务器收到不可预知的请求,对任何用户输入的作为 URI 部分的内容都需要用encodeURIComponent
进行转义。URL.createObjectURL
URL.createObjectURL
的参数是 File 对象或者 Blob 对象
IE10 以下不支持URL.createObjectURL
- windows.navigator.msSaveBlob
msSaveBlob
是 IE10~Edge 专用方法。 - execCommand
有的资料有提到 IE9 可以使用execCommand
方法来保存数据到本地文件,但是我自己没有验证过,不知道是否可行。而且 MDN 文档中execCommand
没有查到 SaveAs 命令。这块只是做个小记录。
- DataURI 的格式:
- js 数据直接导出/下载数据到本地的方法总结
本文转载自:
- 将数据转成 DataURI 用 a 标签下载
如何用JavaScript实现文件下载?
参考如下:
<head runat="server">
<title>文件下载</title>
</head>
<script type="text/javascript">
// 使用JS实现下载.jpg、.doc、.txt、.rar、.zip等文件的方法(参数 imgOrURL 为需要下载的图片的URL地址)
// 使用该方法实现下载压缩文件时会有网页错误信息提示
// .doc、.rar、.zip 文件可以直接通过文件地址下载,
// 如:a href="../Images/test.doc" 点击下载文件/a a href="../Images/test.zip" 点击下载文件/a
function saveImageAs(imgOrURL) {
if (typeof imgOrURL == 'object')
imgOrURL = imgOrURL.src;
window.win = open(imgOrURL);
setTimeout('win.document.execCommand("SaveAs")', 500);
}
// 使用JS实现下载.txt、.doc、.txt、.rar、.zip等文件的方法(参数 fileURL 为需要下载的图片的URL地址)
// 使用该方法实现下载压缩文件时不会有网页错误信息,但是不能使用该方法下载.jpg图片文件
// .doc、.rar、.zip 文件可以直接通过文件地址下载,
// 如:a href="../Images/test.doc" 点击下载文件/a a href="../Images/test.zip" 点击下载文件/a
function savetxt(fileURL) {
var fileURL = window.open(fileURL, "_blank", "height=0,width=0,toolbar=no,menubar=no,scrollbars=no,resizable=on,location=no,status=no");
fileURL.document.execCommand("SaveAs");
fileURL.window.close();
fileURL.close();
}
// 功能类似savetxt方法,但是下载时初始文件名为code.txt,而不是跟目标文件名相同
function svcode(obj) {
var winname = window.open('', '_blank', 'height=1,width=1,top=200,left=300');
winname.document.open('text/html', 'replace');
winname.document.writeln(obj.value);
winname.document.execCommand('saveas', '', 'code.txt');
winname.close();
}
</script>
<body>
<div>
<br />
<a href="javascript: void 0" onclick="savetxt('../Images/test.txt'); return false">点击下载文件</a>
<br /><br />
<a href="javascript:savetxt('../Images/test.txt')">点击下载文件</a>
<br /><br />
<!-- .doc、.rar、.zip 文件可以直接通过文件所在地址下载 -->
<a href="../Images/test.doc">点击下载文件</a>
<br /><br />
<a href="../Images/test.zip">点击下载文件</a>
</div>
</body>
js下载txt文件
首先,下载文件就别想了,你那个 execCommand
有兼容性问题,貌似其他浏览器不支持。
至于 window.open
,这个多数会被拦截吧,现在都不允许弹窗了。至于 txt 文档,有的浏览器会直接显示出来,有的会当文件下载,这个关键还是在服务器的设置,服务器传输过来是有标头,表明详细情况,浏览器对应处理。
所以你要比如点击一个对象后弹出下载的界面,可以有几种方式,比如不用 TXT,变成其他比如 RAR 的,浏览器绝对不会直接显示出来,还有就是在服务器端,弄成不是 TXT,弄成动态页面,然后输出为 TXT,此时设置标头为下载,不允许直接显示,不过,如果这个 TXT 是在其他服务器上,你想点击了直接下载,这个有难度。
以前我做过一个东西,7年前了,就是把东西弄在框里,这样下载也可以的:
<iframe id="download" src="对象地址"></iframe>
然后调用 execCommand
保存这个对象。这样我是成功的,把一个 rar 显示在框内,一片乱码,然后调用这个保存后,成为 rar,可以使用。
如何使用javascript生成txt格式文件保存到本地,要求跨浏览器支持,怎么做呢?
最近看到好几个人问这问题了,其实要实现并不难,而且还是跨浏览器的,但并不完美。
- IE 是通过
ActiveXObject
,前提是浏览者的安全设置中允许此项且同意使用。 - Firefox/Chrome/Safari/Opera 是通过
a
元素的href
属性,加上base64
数据来实现(data URI)。 下面的代码在 IE 6-9,Firefox 19,Chrome 26,Safari 5.0.5,Opera 12.15 测试通过。
【注意】base64 函数和完整代码在空间:hi.baidu.com/keneks/item/a8b10b04fd862f016c904813
<script type="text/javascript">
/* var Base64 = {}; */
window.onload = function () {
var save = document.getElementById("save");
// IE
if (/msie/i.test(navigator.userAgent)) {
save.onclick = function () {
var path = prompt("输入保存路径和文件名", "C:\\test.txt");
var content = document.getElementById("content").value;
content = content.replace(/\n/g, "\r\n");
var fso = new ActiveXObject("Scripting.FileSystemObject");
var s = fso.CreateTextFile(path, true);
s.WriteLine(content);
s.Close();
};
}
// Firefox/Chrome/Safari/Opera
else {
// 鼠标经过 a 的时候就开始 base64 编码
save.onmouseover = function () {
var content = document.getElementById("content").value;
this.setAttribute("href",
"data:application/octet-stream;base64,"
+ Base64.encode(content));
};
}
};
</script>
用js或jquery生成本地txt文件的代码
很难实现直接创建文件到本地,因为权限不允许。但可以弹出一个另存为对话框,让用户点一下确定就保存。所以代码可以用 js 或 jquery 生成本地 txt 文件。 代码就是程序员用开发工具所支持的语言写出来的源文件,是一组由字符、符号或信号码元以离散形式表示信息的明确的规则体系。代码设计的原则包括唯一确定性、标准化和通用性、可扩充性与稳定性、便于识别与记忆、力求短小与格式统一以及容易修改等。 源代码是代码的分支,某种意义上来说,源代码相当于代码。现代程序语言中,源代码可以书籍或磁带形式出现,但最为常用格式是文本文件,这种典型格式的目的是为了编译出计算机程序。计算机源代码最终目的是将人类可读文本翻译成为计算机可执行的二进制指令,这种过程叫编译,它由通过编译器完成。 作用:
- 生成目标代码,即计算机可以识别的代码。
- 对软件进行说明,即对软件的编写进行说明。为数不少的初学者,甚至少数有经验的程序员都忽视软件说明的编写,因为这部分虽然不会在生成的程序中直接显示,也不参与编译。但是说明对软件的学习、分享、维护和软件复用都有巨大的好处。因此,书写软件说明在业界被认为是能创造优秀程序的良好习惯,一些公司也硬性规定必须书写。 需要指出的是,源代码的修改不能改变已经生成的目标代码。如果需要目标代码做出相应的修改,必须重新编译。 代码组合: 源代码作为软件的特殊部分,可能被包含在一个或多个文件中。一个程序不必用同一种格式的源代码书写。例如,一个程序如果有 C 语言库的支持,那么就可以用 C 语言;而另一部分为了达到比较高的运行效率,则可以用汇编语言编写。 较为复杂的软件,一般需要数十种甚至上百种的源代码的参与。为了降低这种复杂度,必须引入一种可以描述各个源代码之间联系,并且如何正确编译的系统。在这样的背景下,修订控制系统(RCS)诞生了,并成为研发者对代码修订的必备工具之一。 还有另外一种组合,源代码的编写和编译分别在不同的平台上实现,专业术语叫做软件移植。
如何把js生成txt文本?
把 JS 生成 TXT?用程序生成还是手动生成。如果是手动:
- 如果是 JS 文件,将 JS 文件的扩展名改为 TXT 就可以了
- 如果 JS 是在网页文档内,拷贝出来放进 TXT 文件就可以了