javascript - 如何在 Dynamics CRM 中操作 HTML-Web 资源
问题描述
我有一个用于 Dynamics CRM 的网络资源。项目将上传到 AppSource。它由一个 .html- 和一个 .js 文件组成。如果我尝试在 .js 文件中使用 document.getElementById 获取 .html 文件的元素,我会收到错误消息,即不支持 DOM 操作。
如何使用 .js 文件操作我的 .html 文件?
如何注册点击事件?
我希望你能在那里帮助我。
编辑
我刚刚解决了第一个问题:
要访问 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 的所有版本均不支持此技术,应将其替换为注册客户端事件处理程序的受支持方法。
编辑 3
我找到了事件注册的解决方案(见我自己的答案)。现在我遇到了问题,我在我的 .js 脚本中使用了 FileReader,它使用了 onloadend 和 onerror 事件。当然,由于上述错误,crm 不允许我在文件中注册事件。
解决方案
解决方案是从 .html 而不是从 .js 注册事件。
<div class="DropArea" id="DropArea" ondrop="OnDrop(event)">
推荐阅读
- r - 在超过 10% 的重复记录中查找值 (R)
- python - Tensorflow:你在 Adam 和 Adagrad 中设置的学习率只是初始学习率吗?
- r - R 不可打印分隔符
- android - Android 字符串数组 itemm
- ios - UI 表重用单元约束在 IB 中看起来不错,但在模拟时不起作用
- python-3.x - 小部件在 KV 文件中不断重复/复制
- python - 3-vector 系列 LSTM 不能突破 0.5 精度
- angular - angulardart:StreamController 在以下示例中如何工作?
- python - 退出 python 脚本时是否可以保留源 shell 脚本?
- grep - 在一个范围内搜索和压缩 .jpg 文件