有没有办法OnLoad()
在代码中注册处理程序?
前任:
添加脚本作为表单库(自定义表单等)。它包含仅在加载表单后才执行的代码。我想这可以通过使用setTimeout()
/ setInterval()
- 并检查Xrm.Page.data
对象来完成,但是还有其他方法吗?
有没有办法OnLoad()
在代码中注册处理程序?
前任:
添加脚本作为表单库(自定义表单等)。它包含仅在加载表单后才执行的代码。我想这可以通过使用setTimeout()
/ setInterval()
- 并检查Xrm.Page.data
对象来完成,但是还有其他方法吗?
首先,为什么要以编程方式进行?
否则,您可以使用 jQuery 以编程方式执行此操作。像这样 :
$(document).ready(function() {
// your code
});
当然,您必须在表单的库中添加 jQuery。
小心使用 jQuery 就绪事件。数据是异步检索的。jQuery 就绪事件可能会在 CRM 完成加载之前触发。
一个非常古老的问题和答案,但非常错误。请不要使用 jQuery 执行此操作。表单事件在 formxml 中注册。如果您希望您的代码作为解决方案的一部分工作,您需要以与 UI 相同的方式更新 formxml。
我知道这个问题很老了,我们现在有 CRM 2016。最近在尝试修复 CRM 2016 中的错误时 。https://community.dynamics.com/crm/f/117/t/186877
我需要调用/添加一个函数,例如function abc()
OnLoad
of 。All Forms
All Entities
我已经按照以下方式完成了。希望这对某人有所帮助。
Form Libraries Manager
XrmToolBox 中的插件将 JS 文件添加abc()
到 CRM 中的所有表单或 Selected 中,如果需要,如下所示。在您添加到所有表单的 JS 文件中,在第一行添加以下内容。
setTimeout(function () {
abc();
}, 1500);
使用上述过程将调用每个表单的abc()
on Load,而无需在每个表单上手动添加处理程序。