1

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

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

问题是网络资源 B 没有对 jQuery 或 $-variable 的“访问”权限。问题是为了使用 jQuery,您会建议做什么。我已经优先列出了一些可能的解决方案:

  1. 使用独立版本的 jQuery 加载网络资源
  2. 一个我没有想到的选择
  3. 从 CDN 加载它
  4. 使用 jQuery 查找所有加载的脚本并将 URL 传递给 webresource B,以便它可以自行加载它(几乎是 hack)
  5. 避免使用 jQuery,使用 vanilla JS

更新:使用 jQuery 的主要原因是为了轻松调整嵌入在弹出窗口中的 iframe(具有随机内容)的大小,根据弹出窗口的尺寸显示 webresource B。

我决定完全放弃 jQuery 并改用 CSS。我的解决方案变成了在 Google Chrome、Windows Edge 和 Internet Explorer 11 中运行良好的解决方案:

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

2 回答 2

1

如果您可以访问 jsquerywebresourceA则意味着 jquery 已经存在(作为 web 资源)在 CRM 中。找到 jquery 的 url(path) 并将其添加为对的引用webresourceB,就是这样。

于 2017-11-15T11:29:25.157 回答
1

我推荐jQuery技术的封装和命名空间。

如果您想快速访问 Dynamics CRM 中的 jQuery 库,您可以安装SparkelXrm 托管解决方案并包含名为“sparkle_/js/SparkleXrmUI_Dependancies.js”的 Web 资源——这是一个包含 jQuery、jQueryUI 的单一库以及其他一些好东西,例如 Knockout JS!

于 2017-11-15T00:00:10.757 回答