2010-04-16 9 views
5

Sto cercando di aggiungere un evento onload ad una finestra pop-up, nel modo seguente:Javascript aggiungendo onload ad una finestra pop-up

var explorerWindow = window.open(PARAMS...); 
explorerWindow.onload = function() {window.opener.unlockObj(id);} 

L'idea è di rendere il pulsante che genera la finestra pop-up in sola lettura, rendendo è nuovamente utilizzabile una volta che la finestra popup ha caricato tutto il suo contenuto. Tuttavia, l'evento non sembra affatto sparare. Ho anche cambiato in seguito e non ha ottenuto nulla:

explorerWindow.onload = function() {alert("bloop");} 

C'è qualcosa di terribilmente sbagliato con la mia sintassi o mi sto perdendo qualcosa di completamente diverso? Inoltre, sto usando JQuery se ci sono delle gemme appropriate che possano aiutare in questa situazione. Ho provato il seguente con risultati simili, ma non sono così sicuro di aver ricevuto la chiamata giusta:

$(explorerWindow).load(function() {alert("bloop");}); 

Qualsiasi aiuto è molto apprezzato.

risposta

1

Questo non funzionerà con tutti i browser. Io suggerirei di mettere il gestore onload nel documento caricato nella nuova finestra e avere quel chiamare alla pagina originale:

window.onload = function() { 
    opener.doStuff(); 
} 
-1

ho effettivamente riuscito a farlo funzionare nei browser devo sostenere con il seguente :

explorerWindow.onload = new function() { explorerWindow.opener.unlockObj(id); } 

Grazie per la risposta però Tim.

+0

Davvero? Ti suggerisco di testarlo attentamente. Grazie all'uso di 'new', che chiamerà' unlockObj (id) 'immediatamente (non aspettando che la nuova finestra carichi prima) e assegni un oggetto piuttosto che una funzione a' explorerWindow.onload', che farà niente (almeno, niente di utile). Quella linea sarà praticamente equivalente alla semplice chiamata di 'unlockObj (id);'. –

Problemi correlati