Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从CRM 2016表单上的另一个html webresource访问webresource控件?_Javascript_Jquery_Html_Dynamics Crm_Dynamics Crm 2016 - Fatal编程技术网

Javascript 如何从CRM 2016表单上的另一个html webresource访问webresource控件?

Javascript 如何从CRM 2016表单上的另一个html webresource访问webresource控件?,javascript,jquery,html,dynamics-crm,dynamics-crm-2016,Javascript,Jquery,Html,Dynamics Crm,Dynamics Crm 2016,在我的客户表单中有两个HTMLWebResources,一个包含multitab,第二个包含一些tile,它们是使用bootstrap和JQuery for events设计的。要在单击第二个webresource上存在的磁贴时启动第一个webresource上存在的tab的单击事件 我已经在简单的html页面上准备好了脚本,所有的代码都在那里工作,但不是在crm表单上 如何从第一个webresource使用JQuery访问选项卡控件 我已经在每个HTMLWebResources上编写了一些脚本

在我的客户表单中有两个HTMLWebResources,一个包含multitab,第二个包含一些tile,它们是使用bootstrap和JQuery for events设计的。要在单击第二个webresource上存在的磁贴时启动第一个webresource上存在的tab的单击事件

我已经在简单的html页面上准备好了脚本,所有的代码都在那里工作,但不是在crm表单上

  • 如何从第一个webresource使用JQuery访问选项卡控件
  • 我已经在每个HTMLWebResources上编写了一些脚本,我可以从另一个HTMLWebResource使用相同的脚本/函数吗
  • Webresource\u 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>
    
    //html
    
    //剧本 //以下脚本在同一页上运行良好 $(“ul.nav选项卡”)。在(“单击”、“li”功能上(){ var selectedTabText=($(this.find(“a”).text()); var tabs=window.parent.Xrm.Page.ui.tabs; //一些切换脚本 });
    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>
    
    //html
    未决案件
    //剧本
    $(“.panel”)。在(“单击”,“div”,函数(){
    //以下内容不适用于crm表单
    $(“#tab_cases”).addClass('active');
    $(“#tab_cases”).parent().sides().removeClass('active');//长度0,id未检测到
    //window.parent.$(“#tab_cases”).parent().sides().removeClass('active');
    /*在li上触发单击事件*/
    //尝试使用webresource_1脚本上编写的函数
    $(“#tab_cases”)。最近的(“ul.nav-tabs li”)。触发('click');/*不触发*
    });
    
    虽然从技术上讲,由于您都在CRM中,并且不会出现任何跨域脚本问题,这可能有点过分,但您可以使用来自Frame1的消息与CRM表单通信,然后让它与Frame2通信。这也意味着您的脚本不必依赖于彼此的DOM,而是可以订阅相同的界面来发布/接收消息。

    建议使用
    Xrm.Page.getControl(arg).getObject()
    ,它将返回您的WebResource的各个IFRAME。(我还没试过)是的。。。你是对的,我可以看到..找到对象后如何进一步访问?我可以使用以下脚本查看对象:window.parent.Xrm.Page.getControl(“WebResource_选项卡”).getObject();正如我所说,我没有亲自尝试过,但从那时起,您应该能够访问DOM。最好的方法是使用调试器检查
    getObject()
    的结果。