1

有没有办法OnLoad()在代码中注册处理程序?

前任:

添加脚本作为表单库(自定义表单等)。它包含仅在加载表单后才执行的代码。我想这可以通过使用setTimeout()/ setInterval()- 并检查Xrm.Page.data对象来完成,但是还有其他方法吗?

4

3 回答 3

3

首先,为什么要以编程方式进行?

  • 表单属性 -> 事件处理程序 -> OnLoad -> 添加 -> 放置表单加载后要执行的函数。

否则,您可以使用 jQuery 以编程方式执行此操作。像这样 :

$(document).ready(function() {
     // your code
});

当然,您必须在表单的库中添加 jQuery。

小心使用 jQuery 就绪事件。数据是异步检索的。jQuery 就绪事件可能会在 CRM 完成加载之前触发。

于 2012-08-02T11:17:02.870 回答
0

一个非常古老的问题和答案,但非常错误。请不要使用 jQuery 执行此操作。表单事件在 formxml 中注册。如果您希望您的代码作为解决方案的一部分工作,您需要以与 UI 相同的方式更新 formxml。

于 2017-11-05T20:58:49.537 回答
0

我知道这个问题很老了,我们现在有 CRM 2016。最近在尝试修复 CRM 2016 中的错误时 。https://community.dynamics.com/crm/f/117/t/186877

我需要调用/添加一个函数,例如function abc() OnLoadof 。All FormsAll Entities

我已经按照以下方式完成了。希望这对某人有所帮助。

  1. 从https://www.xrmtoolbox.com/下载 XrmToolBox
  2. 使用Form Libraries ManagerXrmToolBox 中的插件将 JS 文件添加abc()到 CRM 中的所有表单或 Selected 中,如果需要,如下所示。
  3. 在您添加到所有表单的 JS 文件中,在第一行添加以下内容。

    setTimeout(function () {
    abc();
    }, 1500);
    

在此处输入图像描述

使用上述过程将调用每个表单的abc()on Load,而无需在每个表单上手动添加处理程序。

于 2018-06-07T06:53:26.737 回答