2010-09-22 16 views
9

Sono nuovo di javascript. Mi piacerebbe sapere come una nuova finestra può essere aperta da un metodo javascript, e quindi chiamare i suoi metodi javascript.aprire una nuova finestra e chiamare la funzione javascript

L'url della finestra, è in un altro dominio (può causare un problema di sicurezza!?), E io non avere il controllo su di esso.

Per esempio, un codice che deve comportarsi come i seguenti:

handler<-openAWindow("www.someurl.com");//open a window and get a handler for it 
handler->someMethod1(param1, param2);//call some javascript method 
handler->someMethod2(param3, param4);//call some other javascript method<br> 

Grazie,
Eran.

risposta

17

Purtroppo non è possibile controllare o accedere a una finestra di dominio incrociato. Questo è fatto per precauzioni di sicurezza. Hai il controllo sull'altro URL?

Tuttavia, se la finestra si trova nello stesso dominio , è possibile accedere alla finestra e al relativo DOM.

var win = window.open("/page", "title"); 
win.someFunction(); 
var el = win.document.getElementById("id123"); 
//etc. 
+2

+1 ma non è purtroppo :) – Sarfraz

+0

@Sarfraz: Beh, sfortunatamente per lui almeno. Ma sì, è meglio che questa precauzione sia stata implementata altrimenti le persone potrebbero fare molte cose cattive. :) –

+2

Questo non ha funzionato per me, dal momento che win.someFunction() non sarebbe stata pronta/ancora definito subito dopo la creazione della nuova finestra - così ho avuto la window.opener.child_ready nuova finestra chiamata(), che a sua volta gestito win.someFunction(). Se c'è un modo migliore, felice di sentirlo, altrimenti forse questo aiuterà qualcuno. – MSpreij

Problemi correlati