2010-09-22 5 views
9

Soy nuevo en javascript. Me gustaría saber cómo se puede abrir una nueva ventana desde un método de JavaScript, y luego llamar a sus métodos de JavaScript.abrir una nueva ventana, y llamar a la función de Javascript

La url de la ventana, está en otro dominio (puede causar un problema de seguridad!?), Y no tengo control sobre ella.

Por ejemplo, un código que debe comportarse como los siguientes:

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> 

Gracias,
Eran.

Respuesta

17

Desafortunadamente, no puede controlar o acceder a una ventana de dominio cruzado. Esto se hace por precauciones de seguridad. ¿Tienes control sobre la otra URL?

Sin embargo, si la ventana está en el mismo dominio , tiene acceso a la ventana y su DOM.

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

+1 pero no es lamentablemente :) – Sarfraz

+0

@Sarfraz: Bueno, desafortunadamente para él al menos. Pero sí, es mejor que se implemente esta precaución, de lo contrario la gente podría hacer muchas cosas malas. :) –

+2

Esto no funcionó para mí, ya que win.someFunction() no estaría listo/definido aún después de crear la nueva ventana, así que tuve la nueva ventana llamada window.opener.child_ready(), que a su vez se ejecutaría win.someFunction(). Si hay una mejor manera, me alegra saber de eso, de lo contrario tal vez esto ayude a alguien. – MSpreij

Cuestiones relacionadas