如何在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.contentWindow
,window.parent
,window.open
和window.opener
允许文档直接引用对方。如果两个文档的来源不同,则这些参考文献提供对Window
和Location
对象的非常有限的访问权限,如下两节所述。
的解决办法是从同一个origin服务的iFrame。