在弹出窗口中使用CRM Dynamics 365中的jQuery

时间:2017-11-14 21:09:44

标签: jquery dynamics-crm crm dynamics-365 dynamics-crm-365

在我的CRM Dynamics 365解决方案中,我有一个带有嵌入式Web资源A的表单。此Web资源A使用window.open在弹出窗口中打开另一个Web资源B.开放当然也可以使用Xrm.Utility.openWebResource完成。

我想在webresource B中使用jQuery。我知道CRM本身在某个版本中加载jQuery,在监视网络请求和过滤jquery时很容易发现。

问题是网络资源B没有访问"到jQuery或$ -variable。问题是为了使用jQuery你会建议做些什么。我已经列出了一些可能解决方案的优先顺序:

  1. 使用独立版本的jQuery加载webresource
  2. 一个我没想到的选项
  3. 从CDN加载
  4. 使用jQuery查找所有已加载的脚本,并将URL传递给webresource B,以便它可以自行加载(几乎是黑客)
  5. 避免使用jQuery,使用vanilla JS
  6. 更新: 使用jQuery的主要原因是可以轻松调整嵌入在弹出窗口中的iframe(带有随机内容),该窗口根据弹出窗口的尺寸显示webresource B.

    我决定完全丢失jQuery并使用CSS代替。我的解决方案在Google Chrome,Windows Edge和Internet Explorer 11中运行良好:

    #externalframe {
        width: 100%;
        height: 100%;
        display: block;
        float: left;
    }
    

2 个答案:

答案 0 :(得分:1)

我推荐Encapsulation & Namespacing of jQuery技术。

  

如果您想快速访问Dynamics CRM中的jQuery库,可以安装SparkelXrm managed solution并包含名为“sparkle_ / js / SparkleXrmUI_Dependancies.js”的Web资源 - 这是一个单独的库既有jQuery,jQueryUI以及一些其他好东西,比如Knockout JS!

答案 1 :(得分:1)

如果您可以访问webresourceA中的jsquery,那么这意味着jquery已经存在(作为Web资源)在CRM中。找到jquery的url(路径),并将其添加为对webresourceB的引用,以及它。