javascript into cosa - Imposta una funzione di callback in una nuova finestra in javascript




1 Answers

Aggiornato per i commenti: se apri la finestra tramite window.open() nella tua pagina figlio puoi impostare una funzione nel figlio per essere solo un riferimento che punta a una funzione genitore, quindi fallo nella pagina secondaria:

var RunCallbackFunction = function() { }; //reference holder only

Quindi in genitore (apri), imposta quella funzione quando viene caricata la finestra secondaria, in questo modo:

//random function you want to call
function myFunc() { alert("I'm a function in the parent window"); }

//to actually open the window..
var win = window.open("window.html");
win.onload = function() { win.RunCallbackFunction = myFunc; };

Questo assegna la funzione nel tuo genitore ad essere ora il bersaglio di quel bambino ... e puoi indicare ogni bambino a una funzione diversa se lo desideri, sono tutti indipendenti.

c++ button

C'è un modo semplice per impostare una funzione di "richiamata" in una nuova finestra che viene aperta in javascript? Mi piacerebbe eseguire una funzione del genitore dalla nuova finestra, ma voglio che il genitore sia in grado di impostare il nome di questa particolare funzione (quindi non dovrebbe essere codificato nella nuova pagina di Windows).

Ad esempio nel genitore ho:

function DoSomething { alert('Something'); }
...
<input type="button" onClick="OpenNewWindow(linktonewwindow,DoSomething);" />

E nella finestra del bambino voglio:

<input type="button" onClick="RunCallbackFunction();" />

La domanda è come creare queste funzioni OpenNewWindow e RunCallbackFunction . Ho pensato di inviare il nome della funzione come parametro di interrogazione alla nuova finestra (dove lo script lato server genera le chiamate di funzione appropriate nel codice HTML del figlio generato), che funziona, ma stavo pensando se c'è un altro, o un modo migliore per realizzare questo, forse qualcosa che non richiede nemmeno armamenti da parte del server.

Pure javascript, soluzioni lato server e jQuery (o altri framework) sono tutti benvenuti.




Related