Javascript 如何在Dynamics CRM中操作HTML Web资源

Javascript 如何在Dynamics CRM中操作HTML Web资源,javascript,html,dynamics-crm,office-store,appsource,Javascript,Html,Dynamics Crm,Office Store,Appsource,我有一个用于Dynamics CRM的webresource。该项目将上载到AppSource。它由一个.html文件和一个.js文件组成。如果我试图在.js文件中获取document.getElementById为的.html文件的元素,就会得到错误消息,即不支持DOM操作 如何使用.js文件操作.html文件 如何注册单击事件 我希望你能在那里帮助我 编辑 我刚刚解决了第一个问题: 要访问DOM元素,我需要使用以下代码: Xrm.Page.getControl(WEBRESOURCE_NAM

我有一个用于Dynamics CRM的webresource。该项目将上载到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.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)">

不幸的是,也许不是。这只是解释了如何从CRM或实体中获取所有数据,但我需要访问其他webresource的元素。