我的客户表单中有两个html webresources,一个包含一个multitab,另一个包含一些tile,使用bootstrap和JQuery设计事件。想要在第二个webresource上存在点击图块的第一个webresource上发起一个Click事件。
我已经在简单的html页面上编写了脚本,首先所有代码都在那里工作,但不是在crm表单上。
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 :(得分:0)
虽然从技术上讲,既然你都在CRM中,而且你不会遇到任何跨域脚本问题,这可能有点过时,你可以使用来自Frame1的Window.Post消息来与CRM进行通信表单,然后让它与第2帧通信。这也意味着你的脚本不必依赖于每个的DOM,其他订阅相同的接口来发布/接收消息。