2014-01-22 4 views
3

CRM 2013에서 작업하고 있습니다. 비즈니스 요구 사항은 대시 보드를 사이트 맵에 하위 영역으로 추가하는 것이 었습니다. IFrame에 적절한 대시 보드를 추가하기 위해 html 웹 리소스가 추가 된 하위 영역을 추가했습니다.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을 문제의 사진을 게시 싶었지만에 유래에 기여하는 새로운이기 때문에 그래서 나는 그렇게 할 정도로 명성이 없습니다.

+0

'문서'대신'parent.document'를 사용해 주실 수 있습니까? 그것은 IFrame 자체가 아니라 그것을 보유하고있는 문서를 참조해야합니다. – shytikov

답변

0

중첩 된 IFrame을 생성하므로 dashboardIframe 인 대상 iframe을 가져 오는 유일한 방법은
입니다.

우리가 대시 보드 영역에서 IFRAME 구성 요소를 삽입 할 때 contentIFrame0는 CRM에서 기본적으로 만들어집니다
var mainFrame = window.top.document.getElementById('contentIFrame0').contentDocument.frames["dashboardFrame"]; 

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

.