Xrm.Page.getControl() не работает в центре продаж Dynamics 365
Xrm.Page.getControl("webResource1"). GetObject() работает нормально в Sales Dynamics 365, но не работает в Sales Hub.
Аналог должен использовать formContext, но как вызвать скрипт в веб-ресурсе из другого веб-ресурса.
Например. Xrm.Page.getControl("webResource1"). GetObject(). ContentWindow.function1() отлично работает в Sales, но не в Unified UI.
1 ответ
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");
}
Изменить по адресу null getObject
ошибка
Объект вернулся из getControl()
действительно есть getObject
метод ( MSDN), который заявляет, что он возвратит либо:
- IFRAME возвращает элемент IFrame из объектной модели документа (DOM).
- Веб-ресурс Silverlight возвращает элемент Object из DOM, который представляет встроенный подключаемый модуль Silverlight.
Если вы получаете нулевой объект, вы, вероятно, получили ошибку с именем вашего веб-ресурса.
Откройте форму CRM в режиме конструктора и найдите свой веб-ресурс. Дважды щелкните, чтобы просмотреть его свойства. Вы ищете field name
который в CRM Online имеет префикс "WebResource_"
Например:
Есть еще одно изменение дизайна, вызывающее это null
когда используешь formContext.getControl("WebResourceName").getObject()
потому что Центр продаж или вкладка формы UCI, имеющая веб-ресурс, еще не отображается, если по ней не щелкнуть / не перейти.
Аналогичная тема в ветке сообщества Dynamics