Mettere window.close automatic

Shyson

Utente Attivo
19 Ago 2012
1.145
1
38
In un popup ho messo un form che se va a buon fine l'ho settato verso la home page, invece si riapre di nuovo il popup con il form, come faccio a farlo sparire e far aprire la home automaticamente?
Ho pensato a window.close() ma non so dove va messo

Questo fa aprire il popup
PHP:
function guest() { 
window.open('http://sito.it/guestbook/form.php','guestbook','scrollbars=1,toolbar=0,location=0,directories=0,statusbar=0,menubar=0,left='+((screen.width-800)/2)+',top='+((screen.height-480)/2)+',resizable=0,width=800,height=555');
}
Questo è il meta se il form va a buon fine
PHP:
$meta .= "<META http-equiv=\"REFRESH\" content=\"2; url=http://sito.it\">";
 

Shyson

Utente Attivo
19 Ago 2012
1.145
1
38
Praticamente devo mettere qualcosa che dopo l'invio e l'elaborazione del form mi chiude il popup automaticamente.

Ho notato che se da questo codice tolgo "guestbook", la la finestra assume dimensioni normali (non più di popup) e dopo l'invio del form riappare la home

function guest() {
window.open('http://sito.it/guestbook/form.php','guestbook','scrollbars=1,toolbar=0,location=0,directories=0,statusbar=0,menubar=0,left='+((screen.width-800)/2)+',top='+((screen.height-480)/2)+',resizable=0,width=800,height=555');
}
 
Ultima modifica:

Vale2

Utente Attivo
28 Mag 2006
446
0
0
Livorno
In un popup ho messo un form che se va a buon fine l'ho settato verso la home page, invece si riapre di nuovo il popup con il form, come faccio a farlo sparire e far aprire la home automaticamente?
Ho pensato a window.close() ma non so dove va messo

Questo fa aprire il popup
PHP:
function guest() { 
window.open('http://sito.it/guestbook/form.php','guestbook','scrollbars=1,toolbar=0,location=0,directories=0,statusbar=0,menubar=0,left='+((screen.width-800)/2)+',top='+((screen.height-480)/2)+',resizable=0,width=800,height=555');
}
Questo è il meta se il form va a buon fine
PHP:
$meta .= "<META http-equiv=\"REFRESH\" content=\"2; url=http://sito.it\">";

Cosi ti riapre la home nella PopUp.

se sei sicuro che quel meta si attiva solo al completamento corretto del guestbook metti un js con window.close al suo posto

Codice:
<script type="text/javascript">
window.onload=function(){
setTimeout("window.close()",2000);
}
</script>
o

Codice:
<script type="text/javascript">
function chiudi(){
window.close();
}
setInterval("chiudi()",2000);
</script>
PS: per la seconda se togli 'guestbook' dal window.open vengono ignorati tutti gli argomenti (è il name della PopUp) e ti apre in guest come target _blank

puoi lasciarlo vuoto '' window.open('http://sito.it/guestbook/form.php','','scrollbars=1,...........') Sconsigliato, dare il nome che vuoi e senza spazi, ma non toglierlo.

Valeria.
 

Shyson

Utente Attivo
19 Ago 2012
1.145
1
38
Ho messo così ma non mostra a video gli avvisi

PHP:
...
if ($errore) { 
$ritenta="<META http-equiv=\"REFRESH\" content=\"2; url=http://sito.it/guestbook/form.php\">"; 
echo "$errore; 
}
else { 
$meta .= "MESSAGGIO INVIATO!";
$meta .=\"<script type=\"text/javascript\">window.onload=function(){setTimeout(\"window.close()\",2000);}</script>\">;
 
Ultima modifica:

Vale2

Utente Attivo
28 Mag 2006
446
0
0
Livorno
Ciao,

te sai come inserire codice javascript in una pagina php con un echo o print

metti il js in uno di questi e vedi il source e se funziona.

Prova anche a mettere il js fuori da un richiamo php

?>
<script>..</script>
<? altro codice php se c'è; ?>

Valeria.
 

Shyson

Utente Attivo
19 Ago 2012
1.145
1
38
Ciao,

te sai come inserire codice javascript in una pagina php con un echo o print

metti il js in uno di questi e vedi il source e se funziona.

Prova anche a mettere il js fuori da un richiamo php

?>
<script>..</script>
<? altro codice php se c'è; ?>

Valeria.
Esterno ho messo così, stampa il risultato, ma rimane sempre a video, il popup non scompare

PHP:
function x() {  
window.onload=function() {
setTimeout("window.close()",2000);
}
}

richiamo

PHP:
$meta .= "<script type=\"text/javascript\">x();</script>";
 

Vale2

Utente Attivo
28 Mag 2006
446
0
0
Livorno
Codice:
<?php
print "<script type=\"text/javascript\">window.onload=function(){setTimeout(\"window.close()\",2000)}</script>";
?>

Codice:
<?php
echo "<script type='text/javascript'>window.onload=function(){setTimeout('window.close()',2000)}</script>";
?>
Valeria.
 

Shyson

Utente Attivo
19 Ago 2012
1.145
1
38
Codice:
<?php
print "<script type=\"text/javascript\">window.onload=function(){setTimeout(\"window.close()\",2000)}</script>";
?>

Codice:
<?php
echo "<script type='text/javascript'>window.onload=function(){setTimeout('window.close()',2000)}</script>";
?>
Valeria.
Li ho provati entrambi, ma il popup non stampa il risultato e non sparisce
 

Vale2

Utente Attivo
28 Mag 2006
446
0
0
Livorno
Ciao,

è il codice che ti ho postato, hai altri gestori di eventi onload nella pagina?


Valeria.
 

Shyson

Utente Attivo
19 Ago 2012
1.145
1
38
Fatto questo, ora sto tentando di metterlo esterno, ma il popup non sparisce

PHP:
function x() {  
window.onload=function(){
setTimeout("window.close()",2000);
}
}
PHP:
$meta .= "<script type=\"text/javascript\">x()</script>";
 

Shyson

Utente Attivo
19 Ago 2012
1.145
1
38
Stesso link


http://www.vale2.org/prova/


controlla tutto il tuo .js conflitti ecc...


Valeria.
Mi sembra a posto, è illogico che ora non funzioni

Codice che funziona

PHP:
$meta .= "<script type=\"text/javascript\">window.onload=function(){setTimeout(\"window.close()\",2000)}</script>";
Codice che non funziona

Esterno

PHP:
function chiudiPopup() {  
window.onload=function() {
setTimeout("window.close()",2000);
}
 }
Richiamo

PHP:
$meta .= "<script type=\"text/javascript\">chiudiPopup();</script>";
 

Shyson

Utente Attivo
19 Ago 2012
1.145
1
38
Questo io l'ho messo dove ci sono tutti i controlli js del form, va bene come cartella?


PHP:
function chiudiPopup() {  
window.onload=function() {
setTimeout("window.close()",2000);
}
 }
 

Shyson

Utente Attivo
19 Ago 2012
1.145
1
38
Questo io l'ho messo nel file js dove ci sono i controlli del form, ho provato a metterlo anche nel file js dove c'è la funzione che fa aprire il popup...ma niente


PHP:
function chiudiPopup() {  
window.onload=function() {
setTimeout("window.close()",2000);
}
 }