1

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

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

在 jscript 中,获取该按钮 -

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

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

谢谢

4

5 回答 5

3

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

Luke 提供的链接将向您展示执行此操作的正确方法。

于 2011-10-21T14:37:24.540 回答
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);
}
于 2011-10-27T10:29:02.527 回答
2

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

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

于 2011-04-19T00:02:01.003 回答
1

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

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

见下文:

tabSave = window.top.document.getElementById("salesorder|NoRelationship|Form|Mscrm.Form.salesorder.MainTab.Save");
于 2011-10-03T08:33:43.093 回答
0

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

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

于 2013-01-30T21:21:29.773 回答