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