2015-10-12 23 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 - 如果你已經在使用 –