javascript - 关于单击a标签的实现数据导出功能
本文介绍了javascript - 关于单击a标签的实现数据导出功能的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
我要实现的功能是:单击按钮,导出数据生成excel表。后端给我地址,我只要把数据发过去,他就能返回地址给我,从而实现下载功能。我之前的做法是打开页面的时候就自动生成url,考虑到服务器的压力,这种做法被否决了。我现在单击按钮,只能把url添加到a标签的href上,双击才能下载。这与需求单击实现下载不符,如何单击实现下载啦?
HTML:
p.s:下面结构中的文本是被a标签包裹,有类名download;
<div class='manageReportForms_btn'>导出当前数据</div>
JS:
$scope.exportData=function (start,end) {
channel.push("waiter_xlsx", {"startTime":start,"endTime":end});
channel.on("waiter_xlsx",function (payload) {
var data=payload.data
$(".download").attr("href",data.url);
})
}
$scope.exportVal=function (val) {
channel.push("waiter_xlsx",{"interval":val});
channel.on("waiter_xlsx",function (payload) {
var data=payload.data
$(".download").attr("href",data.url);
})
}
$('.manageReportForms_btn').click(function () {
var iptVal=$(this).siblings().children('.manageReportForms_context').find('span').text();
var interval;
if(iptVal == '昨天'){
interval=-2;
}else if(iptVal == '过去7天'){
interval=-8;
}else if(iptVal == '过去30天'){
interval=-31;
}else{
var start=iptVal.split('——')[0];
var end=iptVal.split('——')[1];
}
$scope.exportVal(interval);
$scope.exportData(start,end);
})
解决方案
$scope.exportVal=function (val) {
channel.push("waiter_xlsx",{"interval":val});
channel.on("waiter_xlsx",function (payload) {
var data=payload.data
Window.location.href=data.url;
return false;
})
}
这样试试
这篇关于javascript - 关于单击a标签的实现数据导出功能的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文