如何在框架内使用沙箱重定向制作iframe?

时间:2017-02-08 18:13:25

标签: angularjs redirect iframe sandbox

我目前有一个应用程序,其中包含一个带沙箱的iframe,因此它可以阻止框架像这样访问顶部导航:

<iframe sandbox="allow-same-origin allow-scripts allow-popups allow-forms allow-pointer-lock" class="iframe" ng-src="{{source_url}}"></iframe>

source_url包含一个重定向到“X”的网址“Y”,其中显示了我需要的内容。沙箱iframe阻止它将我的整个应用程序重定向到站点“X”。问题是它也阻止框架在其中重定向并显示“Y”,我需要框架来显示该网站“X”,有没有办法来实现这个?找到一种方法来捕获尝试重定向到“X”并更改iframe source_url是否可行?

提前多多感谢,问候!

1 个答案:

答案 0 :(得分:0)

这是很久以前的事了,所以我可能会对此有点生疏,但我的解决方案最终是离开沙箱iframe(以防止框架访问顶部导航)但没有初始加载内容使用ng-if,然后提取网址&#34; X&#34;我想在我的控制器上显示,最后使用$sce.trustAsResourceUrl给source_url加载框架。

如下所示:

在我的控制器上:

app.controller('myCtrl', function($scope, $routeParams, $http, $sce){
$scope.load_frame = false;
...
$scope.source_url = $sce.trustAsResourceUrl(url_found);

在我看来

<iframe sandbox="allow-same-origin allow-scripts allow-popups allow-forms allow-pointer-lock" class="iframe" ng-if="load_frame" ng-src="{{source_url}}"></iframe> 

因此,当我更改load_frame的值时,它会加载受信任的URL。不是最好的,但那一刻是我可以解决的问题。希望能帮到某人:)