2014-01-22 44 views
3

我正在CRM 2013中工作。业务需求是将仪表板作为分区添加到站点地图。我添加了一个添加html web资源的子区域,以将相应的仪表板放入IFrame中。CRM 2013意外嵌套iframe

当我尝试在IFrame的子网格中打开一个活动记录时,会出现该问题。 IFrame自己创建另一个IFrame(Iframe嵌套)。以下是我的HTML和问题的截图。

<html> 
    <head> 
<meta charset="utf-8"> 
    </head> 
    <body> 
    <iframe name="dashboardIframe" title="Content Area" id="dashboardIframe" src="about:blank" style="border: 0px currentColor; left: 0px; width: 100%; height: 100%; right: 0px; overflow: hidden; visibility: visible;"></iframe> 
<script type="text/javascript"> 
    var openMyActivities = function() { 
    var serverUrl = document.domain; 
    var dashboardUrl = "https://" + serverUrl + "/dashboards/dashboard.aspx?dashboardId=%7b88dada11-007f-e311-940b-005056b72da0%7d&dashboardType=1030&pagemode=iframe"; 
    document.getElementById("dashboardIframe").src = dashboardUrl; 
}; 
    window.onload = setTimeout(openMyActivities, 10); 
</script> 
</body> 
</html> 

我想后的嵌套iframe问题的图片,但因为我是新来促进StackOverflow的,所以我没有足够的信誉来这样做。

+0

可否请您尝试使用'parent.document'而不是'document'?它应该不涉及IFrame本身,而是包含它的文档。 – shytikov

回答

0

因为它创建嵌套的IFrame,所以
唯一的方法来获取ID为dashboardIframe的目标iframe如下。

var mainFrame = window.top.document.getElementById('contentIFrame0').contentDocument.frames["dashboardFrame"]; 

var targetIframe = mainFrame.document.frames["dashboardIframe"]; 

凡在默认情况CRM当我们插入仪表板区域的IFRAME组件创建contentIFrame0。