diff --git a/src/ng-csv/directives/ng-csv.js b/src/ng-csv/directives/ng-csv.js index bfb80f9..f29c74b 100644 --- a/src/ng-csv/directives/ng-csv.js +++ b/src/ng-csv/directives/ng-csv.js @@ -84,27 +84,42 @@ angular.module('ngCsv.directives'). ], link: function (scope, element, attrs) { function doClick() { - var charset = scope.charset || "utf-8"; - var blob = new Blob([scope.csv], { - type: "text/csv;charset="+ charset + ";" - }); + var blob; if (window.navigator.msSaveOrOpenBlob) { + blob = new Blob([decodeURIComponent(scope.csv)], { + type: "text/csv;charset=utf-8;" + }); navigator.msSaveBlob(blob, scope.getFilename()); } else { + if (window.navigator.appName === 'Microsoft Internet Explorer') { + var IEwindow = window.open(); + IEwindow.document.write('sep=,\r\n' + decodeURIComponent(scope.csv)); + IEwindow.document.close(); + IEwindow.document.execCommand('SaveAs', true, 'export.csv'); + IEwindow.close(); + } else { + + var charset = scope.charset || "utf-8"; + blob = new Blob([scope.csv], { + type: "text/csv;charset="+ charset + ";" + }); + + var downloadContainer = angular.element('
'); + var downloadLink = angular.element(downloadContainer.children()[0]); + downloadLink.attr('href', window.URL.createObjectURL(blob)); + downloadLink.attr('download', scope.getFilename()); + downloadLink.attr('target', '_blank'); - var downloadContainer = angular.element('
'); - var downloadLink = angular.element(downloadContainer.children()[0]); - downloadLink.attr('href', window.URL.createObjectURL(blob)); - downloadLink.attr('download', scope.getFilename()); - downloadLink.attr('target', '_blank'); - - $document.find('body').append(downloadContainer); - $timeout(function () { - downloadLink[0].click(); - downloadLink.remove(); - }, null); + $document.find('body').append(downloadContainer); + $timeout(function () { + downloadLink[0].click(); + downloadLink.remove(); + }, null); + + } } + } element.bind('click', function (e) {