IE10 - window.open(trustedURL)时的页面空白 - PDF ANGULAR JS

时间:2015-11-02 17:03:39

标签: angularjs internet-explorer pdf blob createobject

我尝试生成PDF,因为从API返回数据。

所有工作发现IE 10,Edge打开一个空白窗口!我不知道发生了什么......

控制器功能:

(fileRequest = User.getFile($rootScope.PARAMS, 'facture', 'arraybuffer')).then(function(dataFactureFile)
{
    var file = new Blob([dataFactureFile], {type: 'application/pdf'});
    var fileURL = URL.createObjectURL(file);    
    $scope.content = $sce.trustAsResourceUrl(fileURL);          

    $timeout(function()
    {
        if(action == 'view')
        {
            $window.open($scope.content);
        }
        if(action == 'download')
        {
            var anchor = document.createElement("a");
                         anchor.setAttribute('download', false);

            anchor.download = 'FACTURE-' + $scope.infosFacture.type + '-' + $scope.infosFacture.date + '.pdf';
            anchor.href = $scope.content;
            anchor.click();
        }               
    }, 500);


}, function(reason){

    if(reason != 'aborted')
    {
        // REJECT 
        $scope.popin(reason.errorCode, reason.errorMsg);            
    }
});

服务:

getFile: function(user, type, type_response)
            {
                    var deferredAbort = $q.defer();

                    var request = $http({
                        method: "post",
                        url: $rootScope.directory + 'api/' + type,
                        data: user,
                        headers: {
                            'Content-Type': 'api/downloadPDF'
                        },
                        responseType : type_response,                        
                        timeout: deferredAbort.promise
                    }).then(
                        function(response) {
                            return(response.data);
                        },
                        function(response) {
                            return($q.reject('aborted'));
                        }
                    );

                    request.abort = function() {
                        deferredAbort.resolve();
                    };

                    return(request);
            },

另外,“anchor.click()”似乎不适用于IE:/,有人有模拟下载点击的提示吗?

谢谢你

0 个答案:

没有答案