Folks,Como sugestao, segue uma ferramenta para comparar uma Organizacao do CRM com outra!https://crmcustomcompare.codeplex.comMuito util para manter os diversos ambientes de CRM equalizados e sob controle. Cheers! Ja e de conhecimento de todos (ou da maioria) que a API [window.showModalDialog] foi descontinuada pelo Browser Chrome, a partir da versao 37 - Disabling showModalDialog.Com isto muitos WebSites simplesmente nao executam mais este recurso neste browser.Como ele e usado extensamente, o que fazer entao em substituicao ao depreciado showModalDialog? Vamos criar um proprio, usando a tecnologia JQuery!A funcao ShowModalDialogif (typeof (GT) == "undefined") { GT = {}; }GT.Functions = { ShowModalDialog: function (content, parent, width, height, bkgImage, callbackFn) { var divTag = '<div id="divDialog" '; divTag += 'style="border: 6px solid gray; overflow:hidden; box-shadow: 1px 1px 5px #333; ">'; if (bkgImage) { divTag += '<div id="divDialogLoading" '; divTag += 'style="width:' + width + 'px; height:' + height + 'px; '; divTag += 'background: white url(' + bkgImage + ') no-repeat center;" >'; divTag += '</div>'; } divTag += '<iframe id="frameDialog" frameBorder="0" scrolling="no" '; divTag += 'src="' + content + '" '; divTag += 'style="width:100%;" '; divTag += '>'; divTag += '</iframe>'; divTag += '</div>'; var div = null; var $JQ = null; if (parent != null) { var $JQ = parent.jQuery.noConflict(); parent.window.defer = $JQ.Deferred(); div = $JQ(divTag).appendTo("body"); } else { $JQ = jQuery.noConflict(); window.defer = $JQ.Deferred(); div = $JQ(divTag); } div.append('<style type="text/css"> \ .ui-widget-overlay { \ position: absolute; \ top: 0; \ left: 0; \ width: 100%; \ height: 100%; \ background: #aaaaaa;\ opacity: 0.3; \ } \ .ui-front { \ z-index: 100; \ } \ </style>'); div.dialog({ position: { my: "center", at: "center", of: div, within: div }, autoOpen: false, closeOnEscape: false, height: height, width: width, modal: true, open: function () { $JQ('#frameDialog').on("load", function () { $JQ("#divDialogLoading").hide(); this.height = div.height(); }); }, close: function () { if (callbackFn) callbackFn(); } }); div.dialog('open'); return (parent != null ? parent.window.defer.promise() : window.defer.promise()); }};Algumas consideracoesEm si a funcao e simples pois utiliza o componente JQuery UI Dialog para mostrar um dialogo para o usuario. O mais importante e o uso do metodo [$.Deferred()] e o retorno da funcao, que utiliza o metodo [promise].E justamente isto que garante que o dialogo se comporte como a API window.showModalDialog, trabalhando de forma sincrona com o resto do seu codigo JavaScript.Importante: Se voce pretende usar as versoes mais recentes (a partir da 1.7.x) do JQuery UI Dialog em uma pagina ASPX, nao se esqueca de usar a seguinte declaracao no documento de sua pagina<!DOCTYPE html>Isto garante que o dialogo vai ser posicionado corretamente (no caso da nossa funcao, no centro da pagina).Como devo usar o metodoVeja abaixo dois exemplos de uso do metodo. O primeiro uso e basico. O segundo e interessante porque permite ao desenvolvedor executar o metodo a partir de uma pagina dentro de um [iframe].var url = "http://MeuSite/MinhaPagina.aspx?param=test";GT.Functions.ShowModalDialog( url, null, 470, 470, null, function result() { window.defer.then( function (result) { if (result) { // TRABALHA COM O RETORNO DA PAGINA (url) PASSADA POR PARAMETRO } }); });var url = "http://MeuSite/MinhaPagina.aspx?param=test";var _parentW = (document.parentWindow ? document.parentWindow.parent : document.defaultView.parent);var $jParent =