У меня есть веб-ресурс для Dynamics CRM. Проект будет загружен в AppSource. Он состоит из .html- и .js-файлов. Если я попытаюсь получить элементы .html-файла с помощью document.getElementById в .js-файле, я получаю сообщение об ошибке, что DOM-операции не поддерживаются.
Как мне манипулировать моим .html-файлом с .js-файлом?
Как зарегистрировать событие клика?
Я надеюсь, что вы можете помочь мне там.
ИЗМЕНИТЬ
Я только что решил первый вопрос:
Чтобы получить доступ к DOM-элементу, мне нужно было использовать этот код:
Xrm.Page.getControl(WEBRESOURCE_NAME).getObject().contentDocument.getElementById(id);
Но как зарегистрировать события на элементах?
ИЗМЕНИТЬ 2
Я попытался зарегистрировать события следующим образом:
element.ondragenter = function() {...}
а вот так:
element.addEventListener("change", function() {...})
Обе строки получают одну и ту же ошибку:
'element.onclick = имя_функции' регистрирует или отменяет регистрацию дескрипторов события объектной модели документа (DOM) приложения, управляемого моделью. Этот метод не поддерживается во всех версиях Dynamics 365 и PowerApps и должен быть заменен поддерживаемым подходом для регистрации обработчиков событий на стороне клиента.
ИЗМЕНИТЬ 3
Я нашел решение для регистрации событий (см. мой собственный ответ). Теперь у меня проблема: я использую FileReader в своем .js-скрипте, который использует события onloadend и onerror. И естественно crm не дает мне прописать события в файле из-за ошибки выше.