1

Xrm.Page.getControl("webResource1").getObject()在 Sales Dynamics 365 中运行良好,但在 Sales Hub 中无法运行。

对应的是使用formContext,但是如何从另一个 web 资源调用 web 资源中的脚本。

例如。 Xrm.Page.getControl("webResource1").getObject().contentWindow.function1()在销售中运行良好,但在统一 UI 中运行良好。

4

2 回答 2

4

Xrm.Page已弃用(已弃用的方法在此处

您现在必须执行以下操作:

  • 当您注册您的活动时,您必须勾选Pass Execution Context as first parameter复选框
  • 在您的函数中,您必须添加一个名为的新参数executionContext(名称并不重要)

完成上述操作后,您可以访问formContext包含其中包含的大部分方法的新对象Xrm.Page

更多信息在formContext 这里

例如:

function myHandler(executionContext) 
{
  var formContext = executionContext.getFormContext();
  var myWebResource = formContext.getControl("webResource1");
}

编辑以解决空getObject错误

从返回的对象getControl()确实有一个getObject方法 ( MSDN ),该方法声明它将返回:

  • IFRAME 从文档对象模型 (DOM) 返回 IFrame 元素。
  • Silverlight Web 资源将从 DOM 中返回表示嵌入 Silverlight 插件的 Object 元素。

如果您得到一个空对象,那么您的网络资源名称可能有错误。

在设计器模式下打开您的 CRM 表单并找到您的网络资源。双击查看其属性。您正在寻找field nameCRM Online 中前缀为“WebResource_”的

例如:

在此处输入图像描述

于 2019-01-15T07:36:45.350 回答
1

使用时还有另一个设计更改导致此问题nullformContext.getControl("WebResourceName").getObject()因为除非单击/导航,否则尚未呈现具有 Web 资源的销售中心或 UCI 表单选项卡。

Dynamics 社区线程中的类似主题

GitHub问题

于 2020-02-19T05:25:30.040 回答