Xrm.Page.getControl(“ webResource1”)。getObject()在Sales Dynamics 365中正常工作,而在Sales Hub中不工作。
对方是使用formContext,但是如何从另一个Web资源中调用Web资源中的脚本。
例如。 Xrm.Page.getControl(“ webResource1”)。getObject()。contentWindow.function1()在Sales中工作正常,但在统一UI中工作不正常。
答案 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_”为前缀
例如:
答案 1 :(得分:1)
使用null
时,还有另一项设计更改导致此formContext.getControl("WebResourceName").getObject()
,因为只有在单击/导航后,具有网络资源的Sales hub或UCI表单选项卡才会呈现。