Commit 97800c7c6b527e5095ae0e99bf33c0cdf2920b92
1 parent
d456e365
Exists in
master
and in
7 other branches
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 | ... | ... |