2010-09-22 15 views
9

Ich bin neu in Javascript. Ich würde gerne wissen, wie ein neues Fenster von einer Javascript-Methode geöffnet werden kann, und dann rufen Sie es Javascript Methoden auf.Öffnen Sie ein neues Fenster, und rufen Sie Javascript-Funktion

Die URL des Fensters, ist in einer anderen Domäne (kann ein Sicherheitsproblem verursachen!?), Und ich habe keine Kontrolle darüber.

Zum Beispiel kann ein Code, wie die folgenden verhalten soll:

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> 

Danke,
Eran.

Antwort

17

Sie können ein domainübergreifendes Fenster leider nicht steuern oder darauf zugreifen. Dies geschieht aus Sicherheitsgründen. Haben Sie die Kontrolle über die andere URL?

Wenn jedoch das Fenster auf die gleiche Domäne ist, haben Sie Zugriff auf das Fenster und seine DOM.

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

+1 aber es ist leider nicht :) – Sarfraz

+0

@Sarfraz: Nun, leider für ihn zumindest. Aber ja, es ist das Beste, dass diese Vorsichtsmaßnahme umgesetzt wurde, sonst könnten die Leute viele ungezogene Dinge tun. :) –

+2

Das hat bei mir nicht funktioniert, da win.someFunction() noch nicht fertig/definiert wäre, gleich nachdem ich das neue Fenster erstellt hatte - also hatte ich das neue Fenster window.opener.child_ready() aufgerufen, welches wiederum laufen würde win.someFunction(). Wenn es einen besseren Weg gibt, froh darüber zu hören, sonst hilft das vielleicht jemandem. – MSpreij

Verwandte Themen