UPDATED: 23/09/2013 (Compatível com Rollup 14)
Em algumas situações temos chamadas a funções JScript que por sua complexidade acabam demorando um certo período para retornarem o resultado, o usuário pode acreditar que ocorreu algum problema ou continuar tentando o procedimento sem sucesso. Na versão 2011, podemos colocar notificadores no todo do formulário, temos um API para essas funcionalidades, mas em alguns momentos são insuficientes ou ainda, quando temos uma chamada JScript de um botão do ribbon, neste caso, não temos nenhuma API para uma mensagem para o usuário.
Sendo assim, eu criei um forma de chamarmos uma “div absoluta” que é inserida no centro da tela com a mensagem que desejarmos, e tem o mesmo design do informativos do CRM:
O resultado é simples e também a codificação:
// DIV Absoluta
// EXEMPLO: Carregando(true, "Carregando...");
function Carregando(visivel, frase) {
var classeAbsoluta = ".absoluta { ";
classeAbsoluta += "position:fixed;";
classeAbsoluta += "left:50%;";
classeAbsoluta += "top:50%;";
classeAbsoluta += "width:400px;";
classeAbsoluta += "height:80px;";
classeAbsoluta += "color: #000099;";
classeAbsoluta += "border: 2px solid #000000;";
classeAbsoluta += "font: bold 16px Arial;";
classeAbsoluta += "background-color: #ffffee;";
classeAbsoluta += "padding-top: 58px;";
classeAbsoluta += "text-align: center;";
classeAbsoluta += "margin-left: -200px;";
classeAbsoluta += "margin-top: -40px;";
classeAbsoluta += " }";
var style = document.createElement('style');
style.type = 'text/css';
style.innerHTML = classeAbsoluta;
//Adiciona o Style no HEADER
var header = document.getElementsByTagName('head')[0].appendChild(style);
//Localiza elemento BODY
var body = document.getElementsByTagName("body")[0];
//Remove Div Absoluta
if (document.getElementById("div_absoluta"))
body.removeChild(document.getElementById("div_absoluta"));
//Aparecer Div
if (visivel) {
//Cria as DIV
var absoluta = document.createElement("div");
//Atribui ID
absoluta.id = "div_absoluta";
//Cria o Texto da DIV
var texto = document.createTextNode(frase);
//Adiciona o Nó TEXTO na DIV
absoluta.appendChild(texto);
//Adiciona a DIV Absoluta no BODY
body.appendChild(absoluta);
//Atribui Classes CSS na DIV
document.getElementById('div_absoluta').className = 'absoluta';
}
}
Para a mensagem aparecer use: Carregando(true, “Carregando…”) e para desaparecer Carregando(false, “Carregando…”)
Att,
Tiago Cardoso

Muito bom trabalho, parabéns..
CurtirCurtir
Tiago, com o a ultima atualização a DIV perdeu a cor de fundo, você poderia atualizar seu código por favor.
CurtirCurtir
Daniel, atualizei o código, verifique por favor.
Att,
Tiago Cardoso
CurtirCurtir