我需要设置表单功能区中其中一个按钮的背景颜色。 Ribbon Workbench不支持这一点,因此我编写了以下javascripts来实现相同目的:
function setOpportunityRibbonsAppearance() {
var submitToForeCastButton = parent.document.getElementById("opportunity|NoRelationship|Form|sfw.opportunity.Button1.Button");
if (submitToForeCastButton != null) {
submitToForeCastButton.style.backgroundColor = "lightyellow";
}
}
我已在Form Load事件中注册了此脚本。但问题是,我总是将parent.document.getElementById作为null。 令人惊讶的是,我能够在浏览器控制台中运行parent.document.getElementById语句时看到控件,还可以更改样式属性。
有人可以建议这里有什么问题吗?
P.S。 - 我理解不建议在CRM中使用document.getElementById,但是,在尝试更改某些按钮的外观时,我别无选择。
对此有任何帮助,将不胜感激。
答案 0 :(得分:0)
可能是因为您的脚本在页面完全加载之前正在运行。
中添加延迟答案 1 :(得分: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.
}