Xrm.Page.getControl()在Dynamics 365 Sales Hub中不起作用

时间:2019-01-15 07:16:54

标签: dynamics-crm dynamics-crm-2011 microsoft-dynamics dynamics-365

Xrm.Page.getControl(“ webResource1”)。getObject()在Sales Dynamics 365中正常工作,而在Sales Hub中不工作。

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

例如。 Xrm.Page.getControl(“ webResource1”)。getObject()。contentWindow.function1()在Sales中工作正常,但在统一UI中工作不正常。

2 个答案:

答案 0 :(得分:3)

Xrm.Page已弃用(弃用的方法是here

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

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

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

有关formContext here

的更多信息

例如:

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

编辑以解决空getObject错误

getControl()返回的对象确实具有getObject方法(MSDN),该方法声明它将返回以下任一方法:

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

如果获取的是空对象,则您的网络资源名称可能有错误。

在设计器模式下打开CRM表单,然后找到您的Web资源。双击以查看其属性。您正在寻找field name,它在CRM Online中以“ WebResource_”为前缀

例如:

enter image description here

答案 1 :(得分:1)

使用null时,还有另一项设计更改导致此formContext.getControl("WebResourceName").getObject(),因为只有在单击/导航后,具有网络资源的Sales hub或UCI表单选项卡才会呈现。

Dynamics community thread中的类似主题

GitHub issue