0
我有一個跟蹤服務器上發生的事件數量的程序。我希望能夠將單個事件詳細信息導出到csv文件並允許用戶下載它。link.click();在Chrome瀏覽器工作時無法在Internet Explorer中工作
我有一個按鈕,上,看起來像這樣的頭版:
<button class="btn btn-main btn-actions-ok" ng-click="exportIncident()">Export Incident</button>
和在後端代碼我有陣列稱爲陣列totaDatarow [];
$scope.exportIncident = function() {
var totalDataRow = [];
var csvContent = "data:text/csv;charset=utf-8,";
var exportDataHeader = ["Event Type", "User ID", "Event Date", "Description", "DocNum", "Library", "Version", "Comments"]
totalDataRow.push(exportDataHeader);
var incident = $scope.incident;
incident.details.forEach(function (detail) {
var exportDatarow = [];
//logic to add incident information to exportDatarow
totalDataRow.push(exportDatarow);
})
totalDataRow.forEach(function (infoArray) {
dataString = infoArray.join(",");
csvContent = csvContent + "\n" + dataString
});
var encodedUri = encodeURI(csvContent);
var link = document.createElement("a");
link.setAttribute("href", encodedUri);
link.setAttribute("download", "Incident_"+ incident.id +".csv");
link.click();
}
,因爲通過使用這種方式,我不能找到一種方法來定製,我生成的文件的文件名,我沒有用window.open。所以我在按鈕裏面創建了一個鏈接並點擊它下載。 在鉻這個代碼工作得很好。 csv文件被創建並下載。但是,在Internet Explorer中,此代碼根本無法工作。 當我點擊按鈕時沒有任何反應。 我通過調試器運行它,發現當Internet Explorer到達link.click()時。當它試圖處理該行時,什麼都不會發生。
我需要幫助,因爲我不知道它是我的代碼問題還是Internet Explorer兼容性問題?或別的什麼謝謝。