Imposta la variabile nella finestra padre da iframe

Ho un documento principale con un iframe incorporato. All’interno dell’iframe ho un campo di caricamento. Una volta che l’utente seleziona un file da caricare, faccio scattare un evento di modifica jQuery. Su quell’evento voglio impostare una variabile nella finestra padre su true, in modo che il genitore sappia che il caricamento è iniziato.

Qualcuno sa come fare questo?

Stavo provando questo, ma non ha funzionato:

var test; $("#newsletter_email").change(function() { parent.window.test = true; }); $('#send').click(function() { if (test) { alert('File has been uploaded!'); } else { alert('You need to upload a file'); } }); 

Le variabili nell’ambito globale vengono esposte automaticamente come proprietà DOM del loro object window contenente.

Ciò significa che

 var foo = 'bar'; 

è analogo a

 window.foo = 'bar'; 

Ciò significa che puoi leggere l’ambito globale di qualsiasi object window cui puoi ottenere un riferimento. Ciò che possiamo anche implicare qui è che l’uso della window è implicito . Anche quando non scrivi esplicitamente “window”, è comunque lì.

E poiché i frame stessi sono anche autoesposti come proprietà DOM dell’object attuale, questo significa che è ansible accedere anche ad altri oggetti della window dei frame.

La proprietà parent degli oggetti window contiene un riferimento dell’object della finestra del genitore di quella finestra (se ce n’è uno). Poiché gli iframe hanno sicuramente una finestra genitore, tutta questa roba che ho appena scritto si riduce a questo

 // set the global variable 'foo' in the parent global scope parent.foo = 'bar'; 

È anche ansible memorizzarlo nel localStorage e leggerlo e scriverlo, a condizione che sia il documento principale che l’iframe condividano lo stesso dominio.