Как манипулировать HTML -ресурсами в Dynamics CRM - PullRequest
3 голосов
/ 14 января 2020

У меня есть веб-ресурс для 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 = functionName' регистрирует или отменяет регистрацию дескрипторов события модели объекта документа (DOM) события модельно-ориентированное приложение. Этот метод не поддерживается во всех версиях Dynamics 365 и PowerApps и должен быть заменен поддерживаемым подходом для регистрации обработчиков событий на стороне клиента.

EDIT 3

Я нашел решение для регистрации события (см. Мой собственный ответ). Теперь у меня проблема в том, что я использую FileReader в своем. js -скрипте, который использует события onloadend и onerror. И, конечно, crm не позволяет мне регистрировать события в файле из-за ошибки выше.

1 Ответ

0 голосов
/ 14 января 2020

Решением было зарегистрировать события с. html, а не с. js.

 <div class="DropArea" id="DropArea" ondrop="OnDrop(event)">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...