1

フォームのリボンにあるボタンのいずれかの背景色を設定する必要があります。これは、リボンワークベンチを介してサポートされていないので、私は同じことを達成するために、次のJavaScriptを書かれている:document.getElementByIdは常にリボンに "null"を返します

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

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

私は、フォームのLoadイベントで、このスクリプトを登録しています。しかし問題は、私はいつもparent.document.getElementByIdをnullのみとして取得することです。 驚いたことに、ブラウザのコンソールでparent.document.getElementByIdステートメントを実行しているときにコントロールを見ることができ、またスタイリングの属性を変更することもできます。

誰でもここに間違っているとお考えですか?

P.S. - document.getElementByIdはCRMで使用することはお勧めしませんが、一部のボタンの外観を変更しようとしている間は他に選択肢がありません。

これに関するお手伝いをさせていただきます。

+0

、あなたの操作を行います。

あなたはそれを作るまではサポートされていないと醜いそれを維持するには、あなただけの挑戦を保つことができるが、setIntervalは、関数が繰り返されるようにすることができますリボンスクリプトと同じスコープを選択していますか? – Asher

答えて

0

に遅延を追加する

してみてください。黄色のテキストは表示されませんが、それはあなたのために働くかもしれません。簡単で標準的。

ブラウザコンソールでステートメントを実行している
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

おそらく、ページが完全に読み込まれる前にスクリプトが実行されているためです。あなたがサポートされ、すべてを保つために、黄色の背景でアイコンをアップロードできる機能にPut a Delay in Javascript

関連する問題