[RISOLTO][Javascript] aggiungere elemento ad array definito nella finestra madre da popup

Gio Fra

Nuovo Utente
18 Feb 2016
5
1
3
salve a tutti,
il titolo dice tutto... io ho provato a fare cosi... ma c'è qualcosa che mi sfugge...
codice:
<script type="text/javascript">
function chiudi(){
var op = window.opener;
if (op){
op.lav.push("04 - test");
window.close();
}
}
</script>
ho provato anche con
codice:
op.document.lav.push("04 - test");
nella finestra madre lav è definito cosi:
codice:
var lav = new Array("01 - PROVA LAV 1", "02 - PROVA LAV2", "03 - PROVA 3");
grazie
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao, il primo che hai postato funziona. metti due alert prima di chiudere vedrai che l'array si incrementa
Codice:
function chiudi() {
                var op = window.opener;
                if (op) {
                    alert(op.lav.length);
                    op.lav.push("04 - test");
                    alert(op.lav.length);
                }
                window.close();
            }
posto la prova completa.
index.html
HTML:
<html>
    <head>
        <script>
            var lav = new Array("01 - PROVA LAV 1", "02 - PROVA LAV2", "03 - PROVA 3");
            function apri() {
                window.open("pupup.html", "", "width=300,height=600");
            }
            function conta() {
                alert(lav.length);
                console.log(lav);
            }
        </script>
    </head>
    <body>
        <input type="button" value="apri" onclick="apri()"/>
        <input type="button" value="conta" onclick="conta()"/>
    </body>
</html>
popup.html
HTML:
<html>
    <head>
        <script>
            function chiudi() {
                var op = window.opener;
                if (op) {
                    op.lav.push("04 - test");
                }
                window.close();
            }
        </script>
    </head>
    <body>
        <input type="button" value="chiudi" onclick="chiudi()"/>
    </body>
</html>
puoi anche evitare di inizializzare la class Array (molto dispendiosa) utilizzando solo le parentesi quadre
Codice:
var lav = ["01 - PROVA LAV 1", "02 - PROVA LAV2", "03 - PROVA 3"];
 
Ultima modifica:

Gio Fra

Nuovo Utente
18 Feb 2016
5
1
3
ciao... e grazie della risposta... però ho trovato qual è il vero problema e non so risolverlo...
allora la pagina che apre il popup nella quale è definito l'array... è dentro un frame...
come posso modificare il codice?
 

Gio Fra

Nuovo Utente
18 Feb 2016
5
1
3
risolto....e grazie... un errore cretino... l'array era definito dentro una funzione di controllo... non me ne ero accorto...
 
  • Like
Reactions: criric