2017-01-13 4 views
0

고객 양식에 두 개의 HTML 웹 리소스가 있습니다. 하나는 멀티탭이고 두 번째는 이벤트에 부트 스트랩과 JQuery를 사용하여 디자인 된 일부 타일을 포함하고 있습니다. 두 번째 웹 리소스에 타일 클릭에 대한 첫 번째 웹 리소스에 존재하는 탭의 Click 이벤트를 시작하고 싶습니다.CRM 2016 양식의 다른 HTML 웹 리소스에서 webresource 컨트롤에 액세스하는 방법은 무엇입니까?

간단한 HTML 페이지에서 스크립트를 준비했습니다. 모든 코드가 먼저 작동하지만 crm 양식에서는 작동하지 않습니다.

  1. 첫 번째 webresource에서 JQuery를 사용하여 탭 컨트롤에 액세스하려면 어떻게해야합니까?
  2. 각 html webresources에 몇 개의 스크립트를 작성했습니다. 다른 html webresource에서 동일한 스크립트/함수를 사용할 수 있습니까?

Webresource_1

//html 

    <div class="row">  
     <ul id="tab_container_01" class="nav nav-tabs"> 
     <li id="tab_cases"><a id="ahref_cases" href="#">Cases</a></li> 
     </ul> 
    </div> 
    //script 
    //Following script is working fine on the same page 
    <script type="text/javascript"> 
    $("ul.nav-tabs").on("click", "li", function() { 
     var selectedTabText = ($(this).find("a").text()); 
     var tabs = window.parent.Xrm.Page.ui.tabs; 
     //Some toggle script 
    }); 

</script> 

Webresource_2

//html 

<div class="panel">   
    <div> Open Cases </div> 
</div> 

//script 
<script type="text/javascript"> 
$(".panel").on("click", "div", function() { 

// following not working on crm form 
$("#tab_cases").addClass('active'); 
$("#tab_cases").parent().siblings().removeClass('active'); //length 0, id not detecting 

//window.parent.$("#tab_cases").parent().siblings().removeClass('active'); 

/* trigger click event on the li */ 
//trying to use function written on webresource_1 script 

$("#tab_cases").closest("ul.nav-tabs li").trigger('click'); //*Not Triggering* 
}); 
</script> 
+0

[Xrm.Page.ui control] (https://msdn.microsoft.com/en-us/library/gg334266(v= crm.8) .aspx # BKMK_webResource)은 Xrm을 사용하여 가능해야한다고 제안합니다. .Page.getControl (arg) .getObject()'를 호출하여 WebResource의 IFRAME을 반환합니다. (아직 나 자신을 시도하지 않았다) – Filburt

+0

예 ... 당신 말이 맞아요, 나는 그것을 볼 수 있습니다. 다음 스크립트를 사용하여 객체를 볼 수 있습니다. window.parent.Xrm.Page.getControl ("WebResource_Tab"). getObject(); – user222419

+0

내가 말했듯이 나 자신을 시도하지는 않았지만 거기에서 DOM에 액세스 할 수 있어야합니다. 베스트 샷은 디버거를 사용하여'getObject()'의 결과를 검사합니다. – Filburt

답변

0

모든 CRM 내에서, 그리고 당신이이 수있는 크로스 도메인 스크립팅 문제가되지 않습니다 기술적으로하기 때문에, 비록 조금 이상 죽이면 Window.Post 메시지를 사용하여 CRM1과 통신하고 CRM 양식과 통신 한 다음 이것은 프레임 2와 통신합니다. 이것은 또한 스크립트가 각각의 DOM에 종속 될 필요가 없으며 다른 인터페이스는 메시지를 게시/수신하기 위해 동일한 인터페이스에 가입해야한다는 것을 의미합니다.