嵌入blob pdf在IE和Edge中无效

时间:2017-07-06 14:06:25

标签: internet-explorer pdf blob embed microsoft-edge

这部分代码在Chrome中运行良好,但在IE和Edge中,它没有。

HTML

<object id="pdfObject" ng-hide="$ctrl.item == false" data="{{content}}" type="application/pdf" style="height: 100%;width: 100%;padding-bottom: 40px;">

<embed id="pdfEmbed" ng-src="{{content}}" type="application/pdf" style="height: 100%;width: 100%;"/></object>

JS

 var file = new Blob([this.item], { type: 'application/pdf' });
 var fileURL = URL.createObjectURL(file);
 $scope.content = $sce.trustAsResourceUrl(fileURL)

this.item有来自HTTP呼叫的响应。

1 个答案:

答案 0 :(得分:0)

在embed标签中,属性src应该用blob文件的url填充,将内容更改为fileURL变量,并且应该是固定的

var file = new Blob([this.item], { type: 'application/pdf' });
$scope.fileURL = URL.createObjectURL(file); //here is the change
$scope.content = $sce.trustAsResourceUrl(fileURL)

<embed id="pdfEmbed" src="{{fileURL}}" type="application/pdf" style="height: 100%;width: 100%;"/>

问题是$ sce.trustAsResourceUrl返回的对象与src不匹配