在CRM 2011中获取功能区按钮的ID

问题描述:

我创建了一个javascript,其中我想根据某些条件隐藏功能区按钮Reactivate Lead在CRM 2011中获取功能区按钮的ID

我通过按下F12表单上的lead|NoRelationship|Form|Mscrm.Form.lead.ReactivateLead-Large获得了该按钮的Id。

在JScript中,获得该按钮 -

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

,但我没有得到这个按钮,它给我空..我没有得到什么问题。如果有人提出建议,请告诉我。

谢谢

+0

CRM-2011功能区按钮无法使用的Jscript隐藏返回布尔值按钮的可见性。试试这个,而不是http://www.powerobjects.com/blog/2011/06/17/crm-2011-enabling-and-disabling-ribbon-buttons-2/ – 2012-05-25 15:09:45

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

在此看一看: http://gtcrm.wordpress.com/2011/02/23/hiding-a-ribbon-button-in-crm-2011/

我还发现,如果你不document..之前使用window.top它并不总是工作。

我的代码总是window.top.document等..开始

见下图:

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

为什么你找回一个空值是因为带状菜单显示异步的原因。因此,如果在触发表单的onload事件时尝试检索该按钮,则该按钮不一定会在DOM中。

卢克提供的链接将告诉你正确的方式来做到这一点。

这应该工作,但是你可能需要按住你的鼻子,而使用它

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); 
} 
+0

好的答案,但:有一个缺少“}”在结束。 “功能”应该是“功能”。 – Skuli 2012-09-13 15:20:38

+0

好点子 - 更新,谢谢。 – glosrob 2012-09-13 19:49:23

你得到null,因为色带需要一些时间来显示,所以你必须设置的时间间隔(将要执行的代码例如每2秒),在其中放置代码将隐藏按钮。

或者,您可以显示规则,控制依赖于由Java脚本函数