Commit 97800c7c6b527e5095ae0e99bf33c0cdf2920b92

Authored by Edmar Moretti
1 parent d456e365

Inclusão de parâmetro na função de criação de janelas flutuantes para executar u…

…ma função quando o usuário clica no cabeçalho da janela.
Na função de fechamento da janela, foi incluida uma operação de remoção de scripts injetados.
Showing 1 changed file with 43 additions and 10 deletions   Show diff stats
classesjs/classe_janela.js
... ... @@ -113,7 +113,9 @@ i3GEO.janela = {
113 113  
114 114 id {String} - (opcional) nome que será dado ao id que conterá a janela. Se não for definido, será usado o id="wdoca". O
115 115 id do iframe interno é sempre igual ao id + a letra i. Por default, será "wdocai".
116   - O id do cabçalho será igual a id+"_cabecalho" e o id do corpo será id+"_corpo"
  116 + O id do cabçalho será igual a id+"_cabecalho" e o id do corpo será id+"_corpo".
  117 + O id também é utilizado na função de fechamento da janela. Quando for usada a técnica de
  118 + script tag, ao fechar a janela a função de mesmo nome do id será definida como "null".
117 119  
118 120 modal {Boolean} - (opcional) indica se a janela bloqueará as inferiores ou não. Por default é false
119 121  
... ... @@ -123,7 +125,7 @@ i3GEO.janela = {
123 125  
124 126 {Array} Array contendo: objeto YAHOO.panel criado,elemento HTML com o cabecalho, elemento HTML com o corpo
125 127 */
126   - cria: function(wlargura,waltura,wsrc,nx,ny,texto,id,modal,classe){
  128 + cria: function(wlargura,waltura,wsrc,nx,ny,texto,id,modal,classe,funcaoCabecalho){
127 129 if(i3GEO.janela.ANTESCRIA){
128 130 for(i=0;i<i3GEO.janela.ANTESCRIA.length;i++)
129 131 {eval(i3GEO.janela.ANTESCRIA[i]);}
... ... @@ -135,13 +137,19 @@ i3GEO.janela = {
135 137 var id = "wdoca";
136 138 var modal = false;
137 139 var classe = "hd";
  140 + var funcaoCabecalho = null;
138 141 }
139 142 if (arguments.length == 7){
140 143 var modal = false;
141 144 var classe = "hd";
  145 + var funcaoCabecalho = null;
142 146 }
143 147 if (arguments.length == 8){
144 148 var classe = "hd";
  149 + var funcaoCabecalho = null;
  150 + }
  151 + if (arguments.length == 9){
  152 + var funcaoCabecalho = null;
145 153 }
146 154 var wlargura_ = parseInt(wlargura)+0+"px";
147 155 YAHOO.namespace("janelaDoca.xp");
... ... @@ -167,12 +175,15 @@ i3GEO.janela = {
167 175 else
168 176 {document.body.appendChild(novoel);}
169 177 var wdocaiframe = $i(id+"i");
170   - if (wdocaiframe)
  178 + if(wdocaiframe)
171 179 {
172 180 with (wdocaiframe.style){width = parseInt(wlargura)-12;height=waltura;};
173 181 wdocaiframe.style.display = "block";
174 182 wdocaiframe.src = wsrc;
175 183 }
  184 + else{
  185 + $i(id+'_corpo').style.height=waltura;
  186 + }
176 187 var fix = false;
177 188 if(nx == "" || nx == "center"){var fix = true;}
178 189 if(waltura == "auto")
... ... @@ -185,8 +196,11 @@ i3GEO.janela = {
185 196 }
186 197 YAHOO.janelaDoca.xp.panel.render();
187 198 if(i3GEO.interface.ATUAL=="googleearth"){var classe = "bd";}
188   - $i(id+'_cabecalho').className = classe;
189   - YAHOO.util.Event.addListener(YAHOO.janelaDoca.xp.panel.close, "click", i3GEO.janela.fecha);
  199 + var temp = $i(id+'_cabecalho');
  200 + temp.className = classe;
  201 + if(funcaoCabecalho)
  202 + {temp.onclick = funcaoCabecalho;}
  203 + YAHOO.util.Event.addListener(YAHOO.janelaDoca.xp.panel.close, "click", i3GEO.janela.fecha,YAHOO.janelaDoca.xp.panel,{id:id},true);
190 204 return(new Array(YAHOO.janelaDoca.xp.panel,$i(id+"_cabecalho"),$i(id+"_corpo")));
191 205 },
192 206 /*
... ... @@ -199,7 +213,7 @@ i3GEO.janela = {
199 213  
200 214 id {String} - id da janela que será fechada
201 215 */
202   - fecha: function(id){
  216 + fecha: function(event){
203 217 if(i3GEO.interface.ATUAL=="googleearth"){
204 218 YAHOO.janelaDoca.xp.panel.moveTo(-2000,-2000);
205 219 }
... ... @@ -216,10 +230,29 @@ i3GEO.janela = {
216 230 {eval(i3GEO.janela.ANTESFECHA[i]);}
217 231 }
218 232 YAHOO.janelaDoca.xp.panel.destroy();
219   - if($i("wdoca_c"))
220   - $i("i3geo").removeChild($i("wdoca_c"));
221   - if($i("wdoca"))
222   - $i("i3geo").removeChild($i("wdoca"));
  233 + if($i(this.id+"_c"))
  234 + $i("i3geo").removeChild($i(this.id+"_c"));
  235 + if($i(this.id))
  236 + $i("i3geo").removeChild($i(this.id));
  237 + //
  238 + //remove script tag se houver
  239 + //
  240 + try{
  241 + var old = $i("loadscriptI3GEO");
  242 + if (old != null) {
  243 + old.parentNode.removeChild(old);
  244 + delete old;
  245 + if(this.id)
  246 + eval(this.id+" = null;");
  247 + }
  248 + var old = $i(this.id+"_script");
  249 + if (old != null) {
  250 + old.parentNode.removeChild(old);
  251 + delete old;
  252 + eval("delete " + this.id);
  253 + }
  254 + }
  255 + catch(erro){}
223 256 },
224 257 /*
225 258 Function: alteraTamanho
... ...