在Internet Explorer 11浏览PDF

问题描述 投票:0回答:1

我们呼吁asp.net的WebAPI的HTML对象来显示PDF,PDF是在Chrome和Firefox浏览完美。在Internet Explorer的11 PDF不会代替观看Error

下面是我们的HTML源

    <object data="{{piData}}" type="application/pdf" style="width: 100%; height: 400px;"></object>

AngularJS

$scope.piData = null;
    $http.get('www.mydomain/pi', {
        params: {
            "piId": pPiId
        },
        responseType: 'arraybuffer'
    }).then(function (response) {

        var data = response.data;
        var file = new Blob([data], { type: 'application/pdf' });
        var fileURL = URL.createObjectURL(file);
        $scope.piData = $sce.trustAsResourceUrl(fileURL);
    }, function (err) {
        alert(err.data);
    });

如何解决这个错误

angularjs internet-explorer
1个回答
0
投票
    $scope.piData = null;
    $http.get('www.mydomain/pi', {
        params: {
            "piId": pPiId
        },
        responseType: 'arraybuffer'
    }).then(function(response) {
     if (navigator.msSaveBlob) {
        var data = response.data;
        var binary = atob(data);
        var len = binary.length;
        var buffer = new ArrayBuffer(len);
        var view = new Uint8Array(buffer);
        for (var i = 0; i < len; i++) {
            view[i] = binary.charCodeAt(i);
        }
        var blob1 = new Blob([view], {
            type: 'application/pdf'
        });
        navigator.msSaveBlob(blob1, data);
}else {
 var file = new Blob([data], { type: 'application/pdf' });
    var fileURL = URL.createObjectURL(file);
    $scope.piData = $sce.trustAsResourceUrl(fileURL);
}
    }, function(err) {
        alert(err.data);
    });
© www.soinside.com 2019 - 2024. All rights reserved.