2010-09-22 7 views
9

Je suis nouveau sur javascript. Je voudrais savoir comment une nouvelle fenêtre peut être ouverte à partir d'une méthode javascript, puis appeler ses méthodes javascript.ouvrir une nouvelle fenêtre, et appeler la fonction javascript

L'URL de la fenêtre, est dans un autre domaine (peut causer un problème de sécurité!?), Et je n'ai aucun contrôle sur elle.

Par exemple, un code qui devrait se comporter comme les suivants:

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> 

Merci,
Eran.

Répondre

17

Vous ne pouvez pas contrôler ou accéder à une fenêtre inter-domaine malheureusement. Ceci est fait pour les précautions de sécurité. Avez-vous le contrôle sur l'autre URL?

Cependant, si la fenêtre est sur le même domaine vous avez accès à la fenêtre et son DOM.

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

+1 mais ce n'est malheureusement pas :) – Sarfraz

+0

@Sarfraz: Eh bien, malheureusement pour lui au moins. Mais oui, il vaut mieux que cette précaution soit mise en place sinon les gens pourraient faire beaucoup de vilaines choses. :) –

+2

Cela n'a pas fonctionné pour moi, puisque win.someFunction() ne serait pas prêt/défini tout de suite après la création de la nouvelle fenêtre - donc j'ai eu la nouvelle fenêtre window.opener.child_ready(), qui à son tour s'exécuterait win.someFunction(). S'il y a un meilleur moyen, heureux d'en entendre parler, sinon cela aidera peut-être quelqu'un. – MSpreij

Questions connexes