Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

popup apre altra finestra e si chiude: non in Firefox?

88 views
Skip to first unread message

salvomic

unread,
Oct 13, 2009, 2:36:00 PM10/13/09
to
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�

Cristiano Larghi

unread,
Oct 13, 2009, 3:00:42 PM10/13/09
to
Il Tue, 13 Oct 2009 20:36:00 +0200, salvomic ha scritto:

> 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();">

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"
)

salvomic

unread,
Oct 13, 2009, 3:27:32 PM10/13/09
to
Cristiano Larghi <c.la...@criosoftware.it> wrote:

>
> 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

salvomic

unread,
Oct 14, 2009, 2:15:17 PM10/14/09
to
salvomic <alfa.s...@mac.com.omega> wrote:

> perfetto!
> 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

Cristiano Larghi

unread,
Oct 14, 2009, 2:18:49 PM10/14/09
to
Il Wed, 14 Oct 2009 20:15:17 +0200, salvomic ha scritto:

> ovvero, funziona ora in Safari, Firefox, Internet EXplorer 7 e 8, ma
> Chrome non chiude la finestra (self). Suggerimenti?

io non ti ho scritto "self" ...

salvomic

unread,
Oct 14, 2009, 2:36:54 PM10/14/09
to
Cristiano Larghi <c.la...@criosoftware.it> wrote:

> 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...

Cristiano Larghi

unread,
Oct 15, 2009, 3:19:52 AM10/15/09
to
Il Wed, 14 Oct 2009 20:36:54 +0200, salvomic ha scritto:

> 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...

strano
posta il codice incriminato.

salvomic

unread,
Oct 15, 2009, 4:05:14 AM10/15/09
to
Cristiano Larghi <c.la...@criosoftware.it> wrote:

> 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

Cristiano Larghi

unread,
Oct 15, 2009, 6:52:25 AM10/15/09
to
Il Thu, 15 Oct 2009 10:05:14 +0200, salvomic ha scritto:

> <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>

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.

salvomic

unread,
Oct 15, 2009, 7:43:58 AM10/15/09
to
Cristiano Larghi <c.la...@criosoftware.it> wrote:

> prova a togliere il target, sia mai ...
> prova anche a mettere un setTimeout('window.close()',1); (al posto di
> window.close())

provato: in entrambi i casi non cambia.
SAr� un problema di Chrome.

>
> per il resto:
> ho scoperto or ora che chrome non esiste (ancora?) per linux ... sorry,
> 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�)?

dinosauro

unread,
Oct 15, 2009, 7:44:24 AM10/15/09
to
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


salvomic

unread,
Oct 15, 2009, 9:22:49 AM10/15/09
to
dinosauro <liberal...@hotmail.com> wrote:

> usa window.open per aprire la seconda wind.

uso gi� quello.

> nella seconda wind. usa window.opener.close()
> 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

Cristiano Larghi

unread,
Oct 15, 2009, 11:16:25 AM10/15/09
to
Il Thu, 15 Oct 2009 13:43:58 +0200, salvomic ha scritto:

>> prova a togliere il target, sia mai ... prova anche a mettere un
>> setTimeout('window.close()',1); (al posto di window.close())
>

> 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 :-/ )

salvomic

unread,
Oct 15, 2009, 1:53:35 PM10/15/09
to
Cristiano Larghi <c.la...@criosoftware.it> wrote:

> 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.

strano davvero...
Anche qui con 1ms la tua soluzione non va, ma giïŋ― da 500 ms (perïŋ― forse
perchïŋ― la pagina ïŋ― in cache) va.
Metto sotto il codice con cui sto sperimentando.

>
> Se per te ïŋ― accettabile mettigli un 5 secondi di attesa.

sïŋ―, farïŋ― delle prove (qui da me carica tutto con 1ms, ma forse meglio
aumentare...)

>
> 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 :-/ )

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ïŋ―

0 new messages