我正在尝试重建链接到URL文件的CSV。现在,该链接调用名为downloadCsv()
的JavaScript函数。链接如下所示:
<a href="javascript:downloadCsv()">
该功能如下所示:
function downloadCsv() {
window.location = urlMap.createReportingUrl('entitiesSummaryJson', {
csv: true,
"metrics": metricsForTables
}, 'entityId');
}
上面的urlMap
变量如下所示:
var urlMap = {
params: {
appSpotOrAppCircleData: '2',
intervalCut: '30Days',
entityId: '0',
entityType: 'advertiserOverview',
zoom: 'd'
},
toUrl : function(params) {
var paramValues = [];
$.each(params, function(key, value) {
paramValues.push(key + '=' + value);
});
return '.do?' + paramValues.join('&');
},
createReportingUrl : function(baseUrl, fieldToAdd, fieldToRemove) {
var params = $.extend({}, urlMap.params, fieldToAdd);
delete params[fieldToRemove];
return adjustAppSpotUrl(baseUrl + urlMap.toUrl(params));
}
};
baseUrl
看起来像这样:
https://dev.flurry.com/advertisersReportingEntities.do?zoom=d&intervalCut=30Days&entityType=advertiserOverview&appSporOrAppCircleData=2
我不知道JavaScript所以我被困在这里 - 有没有办法从上面的信息重建URL?我正在尝试定义一组逻辑,可以从HTML获取信息,并通过指向下载URL并写入文件自动下载CSV。
我该如何解决这个问题?
答案 0 :(得分:-1)
我认为你应该使用像
这样的东西window.open(strUrl)
重建网址后
。
所以看起来应该是这样的:
<a href="Your ULR if JS is disabled" target="_blank" onclick="downloadCsv();return false">my link</a>
function downloadCsv() {
var params = "menubar=yes,location=yes,resizable=yes,scrollbars=yes,status=yes";
var url = urlMap.createReportingUrl('entitiesSummaryJson', {
csv: true,
"metrics": metricsForTables
}, 'entityId');
window.open(url, "My JSON", params);//open URL in new tab in browser
}
试试吧。它应该工作。
所以,不要使用协议“javascript:”。它已经过时,如果在客户端禁用JavaScript,它将无法正常工作。
如果你不仅想要一个打开的文件,而是把它放在硬盘上,实际上如果不与用户交互就不可能。它可能是恶意软件,浏览器不允许在没有对话框的情况下执行此操作。要在客户端上显示对话框,请尝试使用特殊标题:
'Content-Type: application/force-download'.