【问题标题】:Getting Id of Ribbon Button In CRM 2011在 CRM 2011 中获取功能区按钮的 ID
【发布时间】:2013-05-26 07:02:02
【问题描述】:

我创建了一个 javascript,我想根据某些条件在其中隐藏功能区 Reactivate Lead 按钮。

我在lead|NoRelationship|Form|Mscrm.Form.lead.ReactivateLead-Large 表单上按 F12 获得了按钮的 ID。

在 jscript 中,获取该按钮 -

document.getElementById("lead|NoRelationship|Form|Mscrm.Form.lead.ReactivateLead-Large");

但我没有得到那个按钮,它给了我 null .. 我没有得到什么问题。如果有人有建议,请告诉我。

谢谢

【问题讨论】:

标签: javascript dynamics-crm-2011


【解决方案1】:

您检索空值的原因是功能区菜单是异步显示的。因此,如果您在触发表单的 onload 事件时尝试检索按钮,则该按钮不一定已经在 DOM 中。

Luke 提供的链接将向您展示正确的方法。

【讨论】:

    【解决方案2】:

    您可以通过更改实体自定义 XML 来隐藏 CRM2011 中的按钮。

    看看这个: http://gtcrm.wordpress.com/2011/02/23/hiding-a-ribbon-button-in-crm-2011/

    【讨论】:

      【解决方案3】:

      这应该可以,但您可能需要在使用时捏住鼻子

      function HideARibbonButton(nameOfButton) {
          var intervalId = window.setInterval(function () {
              if (window.top.document.getElementById(nameOfButton) != null) {
                  window.clearInterval(intervalId);
      
                  //top menu has loaded
                  window.top.document.getElementById(nameOfButton).style.visibility = 'hidden';
              }
          }, 100);
      }
      

      【讨论】:

      • 很好的答案,但是:最后缺少一个“}”。 “功能”应该是“功能”。
      【解决方案4】:

      我还发现,如果您在document.. 之前不使用window.top,它并不总是有效。

      我的代码总是以window.top.document 等开头。

      见下文:

      tabSave = window.top.document.getElementById("salesorder|NoRelationship|Form|Mscrm.Form.salesorder.MainTab.Save");
      

      【讨论】:

        【解决方案5】:

        由于功能区需要一些时间才能显示,因此您将获得 null,因此您必须设置一个间隔(例如每 2 秒执行一次的代码),在其中放置将隐藏按钮的代码。

        或者,您可以根据 java 脚本函数返回的布尔值显示控制按钮可见性的规则

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-07-26
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多