2015-10-12 22 views
3

我有一个页面在iframe中显示外部内容。内容显示正常,但是当加载iframe的内容时,会将当前页面的另一个副本添加到浏览器历史记录中。这会导致浏览器后退按钮功能出现问题。iframe和angularjs的浏览器历史记录

根据所选语言获取内容的路径,然后从资源令牌获取路径。

IFRAME

<iframe ng-if="path" style="height: 90%; background-color: transparent" allowtransparency="true" class="w-full" ng-src="{{path}}" name="storyFrame" frameborder="0"></iframe> 

路径装载

$http.get(LRM.getUrl('scormToken', scope.selectedLang.scorm_package.resource_token)) 
    .success(function (response) { 
     scope.path = response; 
    }).error(function (response) { 
     toaster.pop('error', '', 'Could not fetch scorm package'); 
    }); 

的问题是,如何加载iframe中的内容,而不添加到浏览器的历史?

回答

1

尝试使用

scope.path = $sce.trustAsResourceUrl(response) 

,包括在控制器$ SCE。 林不知道这一点,但我知道角有时与NG-SRC问题和iframe中

编辑:

我现在,我的iFrame充当与您,我增加了新的变数发现,让通话它showIframe,在我改变src之前,我将它设置为false,并且在我更改src之后,将其设置为true(在没有ms号码的超时时自动),所以我删除了frame并将其添加到DOM,并且历史记录未更改。

+0

同样的结果,这并不是说iframe没有加载,而是一旦src被更改,它会在浏览器历史记录中放置一个新页面。 – Jacob

+0

认为浏览器监视所有src更改并保存在历史记录中,这样整个iframe被删除并再次添加到DOM中。这只适用于ng - 如果你已经在使用 –