1

Ich muss die Hintergrundfarbe einer der Schaltflächen in der Multifunktionsleiste des Formulars festlegen. Dies wird nicht durch Ribbon Workbench unterstützt, so dass ich geschrieben habe javascripts nach dem gleichen zu erreichen:document.getElementById gibt immer "Null" für Bänder zurück

function setOpportunityRibbonsAppearance() { 
    var submitToForeCastButton = parent.document.getElementById("opportunity|NoRelationship|Form|sfw.opportunity.Button1.Button"); 

    if (submitToForeCastButton != null) { 
     submitToForeCastButton.style.backgroundColor = "lightyellow"; 
    } 
} 

ich diese Skripte in Form Load-Ereignis registriert haben. Das Problem ist jedoch, dass parent.document.getElementById immer nur null ist. Überraschenderweise kann ich das Steuerelement während der Ausführung der parent.document.getElementById-Anweisung in der Konsole des Browsers sehen und auch die Styling-Attribute ändern.

Kann jemand bitte vorschlagen, was hier falsch sein könnte?

P.S. - Ich verstehe, dass document.getElementById in CRM nicht empfohlen wird, mir bleibt jedoch keine andere Wahl, wenn ich versuche, die Darstellung einiger Schaltflächen zu ändern.

Jede Hilfe zu diesem Thema wird sehr geschätzt.

+0

, wenn Sie die Anweisung in Ihrem Browser-Konsole ausgeführt wird, sind Sie Haben Sie denselben Umfang wie Ihr Ribbon Script? – Asher

Antwort

0

Sie könnten eine Symbol mit einem gelben Hintergrund, halten alles unterstützt das Hinzufügen hochladen. Sie werden keinen Text auf Gelb sehen, aber es könnte für Sie funktionieren. Einfach und Standard.

zu halten, nicht unterstützt und hässlich, Sie könnten nur zu versuchen, bis Sie es machen, ermöglicht setInterval für eine Funktion wiederholt werden:

function setOpportunityRibbonsAppearance() { 
    var submitToForeCastButton = null; 

    var interval = setInterval(function(){ 
     submitToForeCastButton = parent.document.getElementById("opportunity|NoRelationship|Form|sfw.opportunity.Button1.Button"); 

     if(submitToForeCastButton != null) { 
      submitToForeCastButton.style.backgroundColor = "lightyellow";   
      clearInterval(interval); 
     } 
    }, 500); // Every 500ms. Adjust as needed, not too fast or browser will choke. 
} 
0

Wahrscheinlich weil Ihr Skript ausgeführt wird, bevor die Seite vollständig geladen ist.

Versuchen Sie, eine Verzögerung der an die Funktion Put a Delay in Javascript