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

当你在浏览器控制台中运行的声明,你选择与您的功能区脚本相同的范围? – Asher

回答

0

你可以上传图标黄色背景,把一切都支持。你不会看到黄色的文字,但它可能适用于你。简单而标准。

为了保持它不支持的和丑陋的,你可以只是不断尝试,直到你把它,setInterval允许重复的功能:

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