1

Reactivate Lead条件によってはリボンボタンを非表示にしたいJavaScriptを1つ作成しました。

であるフォームで 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

null 値を取得する理由は、リボン メニューが非同期で表示されるためです。そのため、フォームの onload イベントがトリガーされたときにボタンを取得しようとすると、必ずしもボタンが既に DOM にあるとは限りません。

Luke が提供するリンクは、これを行う正しい方法を示しています。

于 2011-10-21T14:37:24.540 に答える
2

エンティティ カスタマイズ XML を変更することで、CRM2011 のボタンを非表示にすることができます。

これを見てください: http://gtcrm.wordpress.com/2011/02/23/hiding-a-ribbon-button-in-crm-2011/

于 2011-04-19T00:02:01.003 に答える
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 に答える
1

window.topまた、以前document..に使用しないと、常に機能するとは限らないこともわかりました。

window.top.document私のコードは常にetc で始まります。

下記参照:

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

リボンの表示に時間がかかるため、ボタンを非表示にするコードを配置する間隔 (たとえば、2 秒ごとに実行されるコード) を設定する必要があるため、null になります。

または、Java スクリプト関数によって返されるブール値に応じてボタンの可視性を制御するルールを表示できます。

于 2013-01-30T21:21:29.773 に答える