2014-03-29 46 views
2

我正在嘗試重建鏈接到CSV文件的URL。現在,該鏈接調用一個名爲downloadCsv()的JavaScript函數。鏈接如下:如何從JavaScript函數重建URL?

<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。

我該如何解決這個問題?

回答

-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'. 
+0

爲了澄清 - 我不是問我應該如何在原崗位更改代碼 - 我只是他們的網站的用戶,在訪問頁面與JavaScript。我想查看網站的JavaScript,並確定'downloadCsv()'函數調用哪個url,以便我可以自動下載csv文件。 – user2486308