1

양식의 리본에있는 버튼 중 하나의 배경색을 설정해야합니다. 이 리본 워크 벤치를 통해 지원되지 않습니다, 그래서 같은를 달성하기 위해 자바 스크립트를 다음 쓴 :document.getElementById는 항상 리본에 대해 "null"을 반환합니다.

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

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

나는 폼로드 이벤트에서이 스크립트를 등록했다. 그러나 문제는, 나는 항상 parent.document.getElementById를 null로만 얻는다는 것입니다. 놀랍게도 브라우저의 콘솔에서 parent.document.getElementById 문을 실행하는 동안 컨트롤을 볼 수 있었으며 스타일 지정 속성을 변경할 수도 있습니다.

누구든지 여기에 무엇이 잘못 될 수 있다고 제안 할 수 있습니까?

P. - 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

관련 문제