AngularJS" Blob"不适用于IE8,IE9和Firefox

时间:2017-04-05 02:35:12

标签: c# asp.net angularjs blob

请有人帮助我使用" Blob"在angularJs中下载excel文件。它在Chrome和IE10和11中工作但是当我使用Firefox和IE8& 9时,没有弹出下载会告诉我们在Chrome中保存或打开它的位置。

我的API数据成功返回要下载的字节,但我的客户端脚本无法下载。

这是我在AngularJS中的代码:

    $scope.LoadData = function () {
        $scope.yearIsLoading = true;
        reportsService.getAssessmentReports($scope.filter).$promise.then(function (response) {
            if (response != null) {
                var file = new Blob([response.data], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });
                saveAs(file, 'Assessments Report');
                $scope.yearIsLoading = false;
            }
        });
    };

这是我在IE8和IE9中得到的错误:

[IE8 and IE9 Error][1]

在Firefox中我无法看到错误,但在点击导出按钮后却没有发生。

提前感谢能够帮助我解决此问题的人。 :)

1 个答案:

答案 0 :(得分:0)

您可以尝试这样的事情:

var file = new Blob([response.data], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });

if(window.navigator.userAgent.indexOf("MSIE ") > 0 || window.navigator.userAgent.indexOf("Trident/ ") > 0 || window.navigator.userAgent.indexOf("Edge/") > 0)
{
   window.navigator.msSaveOrOpenBlob(file);
}