【发布时间】:2020-03-07 03:21:07
【问题描述】:
我在 iframe 中使用 ng-src 时遇到问题。我需要这样做:
<div class="tab-content">
<ul class="nav nav-tabs" ng-repeat="document in issues.Document">
<div class="tab-pane pdf-height col-md-5 padding_0" id="{{document.name}}">
<iframe ng-src="http://192.168.223.110/cat/{{document.directory}}/{{document.name}}.{{document.type}}" height="100%" width="100%"></iframe>
</div>
</ul>
</div>
结果:
<iframe ng-src="http://192.168.223.110/cat/{{document.directory}}/{{document.name}}.{{document.type}}" height="100%" width="100%" src="http://192.168.223.110/cat/{{document.directory}}/{{document.name}}.{{document.type}}"></iframe>
我知道问题出在 $sce 上,这是针对 XSS 的保护,并且需要将链接添加到白名单中......所以当我这样做时它正在工作。
<ul class="nav nav-tabs" ng-repeat="document in issues.Document">
<div class="tab-pane pdf-height col-md-5 padding_0" id="{{document.name}}">
<iframe ng-src="{{someUrl}}" height="100%" width="100%"></iframe>
</div>
</ul>
我在控制器内部定义:
$rootScope.someUrl = $sce.trustAsResourceUrl('http://192.168.223.110/cat/files/incoming/12345_3232ASD_pero.pdf');
但我不能那样做,因为我正在循环使用 ng-repeat,所以链接是动态生成的。它需要从数据库中读取!
【问题讨论】:
标签: javascript angularjs iframe