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

时间:2011-04-18 10:22:10

标签: javascript dynamics-crm-2011

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

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

在jscript中,获取该按钮 -

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

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

感谢

5 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:2)

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

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

答案 2 :(得分:2)

这应该可行,但你可能需要在使用它时保持鼻子

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

答案 3 :(得分:1)

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

我的代码始终以window.top.document等开头。

见下文:

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

答案 4 :(得分:0)

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

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