javascript - 关于单击a标签的实现数据导出功能
巴扎黑
巴扎黑 2017-04-11 12:44:27
[JavaScript讨论组]

我要实现的功能是:单击按钮,导出数据生成excel表。后端给我地址,我只要把数据发过去,他就能返回地址给我,从而实现下载功能。我之前的做法是打开页面的时候就自动生成url,考虑到服务器的压力,这种做法被否决了。我现在单击按钮,只能把url添加到a标签的href上,双击才能下载。这与需求单击实现下载不符,如何单击实现下载啦?

HTML:
p.s:下面结构中的文本是被a标签包裹,有类名download;

导出当前数据

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);
})
巴扎黑
巴扎黑

全部回复(3)
迷茫

$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;
})

}

这样试试

伊谢尔伦

直接window.location.href = xxxxx呗
干嘛去改写href

PHP中文网
试试
channel.push("waiter_xlsx", {
    "interval": val
});
channel.on("waiter_xlsx", function(payload) {
    var data = payload.data
    $(".download").attr("href", data.url);
    $('.download').attr('download','filename');
    $('.download')[0].click();
});
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号