js处理下载的问题

<!DOCTYPE HTML>
<html>
<head>
</head>
<body>
<table id="targetTable">
<tbody>
<tr align="center">
<th>标识</th>
<th>内容</th>
<th>创建时间</th>
</tr>
<tr align="center">
<td>1</td>
<td>excel导出01</td>
<td>2015-07-22</td>
</tr>
<tr align="center">
<td>2</td>
<td>excel导出02</td>
<td>2015-07-22</td>
</tr>
</tbody>
</table>
<a id="exportExcel" href="javascript:;">导出Excel</a>

<script src="https://cdn.bootcss.com/jquery/1.10.1/jquery.js"></script>

<script>
var tableToExcel = (function() {
var uri = ‘data:application/vnd.ms-excel;base64,‘,
template = ‘<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40">‘
+ ‘<head><meta http-equiv="Content-type" content="text/html;charset=UTF-8" /><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines/>‘
+ ‘</x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--></head><body><table>{table}</table></body></html>‘,
base64 = function(s) {
return window.btoa(unescape(encodeURIComponent(s)))
},
format = function(s, c) {
return s.replace(/{(\w+)}/g, function(m, p) {
return c[p];
})
};

return function(table, name) {
var ctx = {
worksheet : name || ‘Worksheet‘,
table : table.innerHTML
}
return uri + base64(format(template, ctx));
}
})();

$(function(){
$(‘#exportExcel‘).on(‘click‘, function(){
var $this = $(this);
//设定下载的文件名及后缀
$this.attr(‘download‘, ‘下载.xls‘);
//设定下载内容
$this.attr(‘href‘, tableToExcel($(‘#targetTable‘)[0], ‘下载‘));
});
});
</script>
</body>

</html>

 

需要注意两点: 1这个方法是不兼容ie的

2如果做下载的时候最后点击下载的一定是a标签,就算事件不是加在a标签上面最终也还是要动态的创建一个a标签通过a标签进行下载

时间: 2024-11-08 16:06:00

js处理下载的问题的相关文章

php大力力 [028节] 如何下载js文件,网上一个*.js无法下载啊??????

php大力力 [028节] 如何下载js文件,网上一个*.js无法下载啊?????? safari也无法下载 迅雷也无法下载 是不是对方网站服务器的不让下载那个js目录的文件??? 只能调用js函数啊??? 痛苦啊痛苦 难过啊 ?? php大力力 [028节] 如何下载js文件,网上一个*.js无法下载啊?????? http://www.cnblogs.com/dalitongxue/p/4764290.html

Node.js安装 下载

1.安装Node.js https://nodejs.org/en/ 安装步骤: 点击安装包 按提示进行安装 Node.js 安装配置 本章节我们将向大家介绍在 Windows 和 Linux 上安装 Node.js 的方法. 本安装教程以 Node.js v4.4.3 LTS(长期支持版本)版本为例. Node.js 安装包及源码下载地址为:https://nodejs.org/en/download/. 你可以根据不同平台系统选择你需要的 Node.js 安装包. Node.js 历史版本下

js自动下载

常用方法是利用a标签的属性download下载对应文件.图片等 <a href=".." download="...."></a> 但是如果想在页面加载完后即时下载可以用一下方法 function download(){ var a=document.createElement("a"); a.href=""; a.download='down.png' ; a.click(); } 简单方便不留痕迹,

html网页中加载js脚本 下载下来是乱码(文件编码格式)

问题描述: 在一个index.html网页中,引入了jquery脚本,但是却出现错误,提示$ is not defined <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <script src='js/jquery-1.9.1.min.js'></sc

js异步下载文件请求

注意 :通常下载文件是用get请求 window.location.href=url; 但是 我们需要下载完成监听,所以必须要异步执行.用常规的ajax是不可以的.我们要用blob对象来实现1.原生的如何实现 function loadDown(query) { var url = "${ctx}/bill/billExport"+query; var xhr = new XMLHttpRequest(); xhr.open('GET', url, true);    // 也可以使用

js 页面下载3中方式

1. window.location.href = '请求路径'get方式} 2. fetch('请求路径方式拼接上去'get方式).then(res => res.blob().then(blob => { const a = document.createElement('a') const url = window.URL.createObjectURL(blob) const filename = 'aa.xlsx' a.href = url a.download = filename

js创建下载文件

function downloadFile(fileName, content){ var aLink = document.createElement('a'); var blob = new Blob([content]); var evt = document.createEvent("HTMLEvents"); // initEvent 不加后两个参数在FF下会报错, 感谢 Barret Lee 的反馈 evt.initEvent("click", fals

js post 下载文件

function DownLoadPost(url,data) { if (url && data) { var form = $('<form>{{ xsrf_form_html()|safe }}</form>'); form.attr('action', url + "?rand=" + Math.random()); form.attr('method', 'post'); for (var item in data) { console

js 下载远程图片

<!DOCTYPE html><html lang="en"><head> <script src="jquery/jquery-1.9.1.min.js"></script> <script src="jquery/jquery.min.js"></script> <meta charset="UTF-8"> <title&