2016-07-05 81 views
0

我已經在sap ui5中定義了一個iframe。頁面打開後,用戶做了一些事情,之後我需要從HTML頁面獲取數據。在HTML頁面中有一個id爲「list」的元素,我只需要該元素。如何在sap ui5中從iframe獲取數據?

var htmlPage = new sap.ui.core.HTML({ 
    preferDOM: true, 
    content: "<iframe id='frameAdd' src='url'></iframe>" 

}); 
var dialog = new sap.m.Dialog({title:"User Picker",contentWidth:"20%", contentHeight:"20%", 
    beginButton:new sap.m.Button({text:"Close",press:function(){dialog.close();}}),content:htmlPage}) 

我曾嘗試下面的東西,但沒有得到相關

htmlPage.getContent() 
htmlPage.getSanitizeContent() 
htmlPage.getDomRef("list") 
document.getElementById("list") 

和歌廳訪問任何被拒絕$('#frameAdd').contents()

如果你這樣做了,請給我建議以正確的方式來實現它

回答

1

iFrame很可能是從不同的域/端口/協議提供服務。在這種情況下,它不是SAPUI5的特定問題,而是瀏覽器安全措施的一部分。

same-origin policy在瀏覽器也適用於Iframe:

的JavaScript API,如iframe.contentWindowwindow.parentwindow.openwindow.opener允許文檔直接引用對方。如果兩個文檔的來源不同,則這些參考文獻提供對WindowLocation對象的非常有限的訪問權限,如下兩節所述。

Source

的解決辦法是從同一個origin服務的iFrame。