如何在sap ui5中从iframe获取数据?

问题描述:

我已经在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()

如果你这样做了,请给我建议以正确的方式来实现它

iFrame很可能是从不同的域/端口/协议提供服务。在这种情况下,它不是SAPUI5的特定问题,而是浏览器安全措施的一部分。

same-origin policy在浏览器也适用于Iframe:

的JavaScript API,如iframe.contentWindowwindow.parentwindow.openwindow.opener允许文档直接引用对方。如果两个文档的来源不同,则这些参考文献提供对WindowLocation对象的非常有限的访问权限,如下两节所述。

Source

的解决办法是从同一个origin服务的iFrame。