使用iframe和angularjs的浏览器历史记录

时间:2015-10-12 07:58:20

标签: javascript angularjs iframe browser-history

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

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

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 个答案:

答案 0 :(得分:1)

尝试使用

scope.path = $sce.trustAsResourceUrl(response)

并在控制器中包含$ sce。 我不确定这一点,但我知道角度有时会出现ng-src和iframe

的问题

编辑:

我现在发现我的iFrame与你的行为相同,我添加了新变量,让我们称之为showIframe,在我更改src之前我将其设置为false并且在我更改src之后将其设置为true(在没有ms数的超时中) - auto),所以i frame被删除并添加到DOM并且历史不会改变。