Newsgroup: it.comp.lang.javascript
Titolo: popup apre altra finestra e si chiude: non in Firefox?

salve,
qualcuno pu� consigliarmi?
Ho una finestra aperta come popup che dovrebbe aprirne un'altra e
chiudersi.
Ho messo questo codice:
[CODE]
<a href="./karma/index.html" target="_blank" title="Finestra 2 da
aprire" onclick="location.href='./karma/index.html';
self.close();">Finestra 2 da aprire</a>[/CODE]
(nell'href c'� un indirizzo per accessibilit�, ma anche mettendo "#" non
cambia.
Ok, funziona bene in Safari, Internet Explorer 7 e 8, ma non Firefox
(Mac OS X e Windows). Perch�?
onclick su Firefox non sembra accettare due istruzioni: con il codice di
sopra la finestra si chiude, ma non apre l'altra.
Se metto newpagina.location.href o simile, apre la nuova finestra, ma
non si chiude...
grazie per l'aiuto
salvo
-- 
UNIX Era, NeXT Generation
�salvomic�

 self.close();">
per aprire una popup usa window.open, non window.location.href (target è 
ultradeprecato):
 
https://developer.mozilla.org/En/DOM:window.open
(diventerebbe quindi un qualcosa del tipo
  onclick="var mywin=window.open .... ; window.close();return false"
)

 )
perfetto!
cos� funziona. 
E dire che questa prova (sicuramente sbagliando) pensavo di averla
fatta...
Il target lo so che � deprecated, ma mi serve per i vecchi browser senza
javascript.
ciao,
grazie


 cos� funziona. 
ovvero, funziona ora in Safari, Firefox, Internet EXplorer 7 e 8, ma
Chrome non chiude la finestra (self).
Suggerimenti?
Il codice che ora funziona �
[CODE]
<a href="./karma/index.html" target="_blank" title="Titolo" onclick="var
mywin = window.open('./karma/index.html','bogus_titolo'); self.close();
return false;">Titolo Link</a>
[/CODE]
ciao


 Chrome non chiude la finestra (self). Suggerimenti?
io non ti ho scritto "self" ...

 io non ti ho scritto "self" ...
non funziona neppure con "window": contrariamente agli altri, apre il
nuovo popup, ma lascia il vecchio aperto.
Preciso: sia self, sia "window" funzionano da soli: self.close()
funziona anche su Chrome, ma non il mio codice che apre un nuovo popup,
chiude il precedente...


 non il mio codice che apre un nuovo popup, chiude il precedente...
strano
posta il codice incriminato.

 posta il codice incriminato.
gi� fatto :-)
<a href="./karma/index.html" target="_blank" title="Titolo" onclick="var
mywin = window.open('./karma/index.html','new_finestra'); self.close();
return false;">Titolo Link</a>
oppure
<a href="./karma/index.html" target="_blank" title="Titolo" onclick="var
mywin = window.open('./karma/index.html','new_finestra');
window.close();
return false;">Titolo Link</a>
Funziona in tutti, ma in Chrome non chiude il popup A (a sua volta
aperto con window.open...), quello che apre B


 return false;">Titolo Link</a>
prova a togliere il target, sia mai ...
prova anche a mettere un setTimeout('window.close()',1); (al posto di 
window.close())
per il resto:
ho scoperto or ora che chrome non esiste (ancora?) per linux ... sorry, 
non posso testarlo, sentiamo gli altri.

 non posso testarlo, sentiamo gli altri.
non c'� neppure (ufficialmente) per Mac :)
lo sto provando su Windows, infatti...
per� � strano:  perch� self.close() da solo lo esegue e qui in
combinazione no (mentre tutti gli altri s�)?


usa window.open per aprire la seconda wind.
nella seconda wind. usa window.opener.close()
che ti dovrebbe chiudere la prima wind.
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 che ti dovrebbe chiudere la prima wind.
per com'� il progetto � preferibile che sia la prima window a chiudersi
subito dopo aver aperto B... (la seconda non � neppure un popup, ma un
sito, e meglio non toccarlo), e comunque vorrei capire (sapere) perch�
tutto funziona con gli altri browser e non con Chrome: � un problema di
Chrome?
grazie, ciao


 provato: in entrambi i casi non cambia. SArà un problema di Chrome.
incuriosito ho provato con un setTimeout da 1 secondo, e funziona 
correttamente ... con 1 ms invece no. Sembrerebbe che chrome abbia 
bisogno che la popup sia caricata, altrimenti non si chiude. Però assegna 
subito l'handle alla variabile con window.open, senza attendere...boh, 
strano comportamento.
Se per te è accettabile mettigli un 5 secondi di attesa.
Altrimenti fai qualche prova, del tipo: prova a spostare la popup aperta, 
così sei sicuro che sia stata aperta (in teoria), prima di chiamare il 
close(). Non ho tempo per fare altre prove (e il mio pc-windows è più 
vecchio di mio nonno e non è facile tenerlo acceso :-/ )

 vecchio di mio nonno e non ïŋ― facile tenerlo acceso :-/ )
eh... :)
per le prove moltissimo tempo non ho: giïŋ― devo provare 4-5 browsers
diversi, miii...
Allora,
ho provato cosïŋ―:
in head
---
        <script type="text/javascript">
                <!-- hide from older browsers
                function aprichiudi(the_url) {
                        var browser = navigator.userAgent.toLowerCase();
                        if (browser.indexOf("chrome") != -1) {
                                window.open(the_url);
                                window.setTimeout("self.close();",
1000);
                        }
                        else {
                         var the_window  = window.open(the_url);
                         self.close();
                        }
                }
                // show me -->
        </script>
---
poi nel link:
<a href="./karma/index.html" target="_blank" title="Suo titolo"
onclick="aprichiudi('./karma/index.html'); return false;">Bel Titolo</a>
ho preferito la funzione, per poter fare meglio i test, e ho anche
preferito applicare il timeout solo a Chrome, lasciando gli altri
liberi...
-- 
UNIX Era, NeXT Generation
ïŋ―salvomicïŋ―