2009-12-02 4 views
14

Ich habe JavaScript-Code, um ein Popup-Fenster mit der Funktion window.open() zu öffnen. Ich würde gerne Daten aus dem Elternfenster an dieses Popup-Fenster übergeben und ich kann nicht scheinen, eine elegante oder einfache Lösung irgendwo bei Google oder SO zu finden, aber es scheint, dass es Unterstützung für diese in JS eingebaute Unterstützung geben sollte. Was ist der einfachste Weg, Daten an das Popup-Fenster zu übergeben?Schnellste Möglichkeit, Daten an ein Popup-Fenster zu übergeben, das ich mit window.open() erstellt habe?

Vielen Dank im Voraus für Ihre Hilfe!

+0

Welche Art von Daten? Primitive? (Strings, Numbers, Bools) oder Objekte? –

Antwort

38

Aufgrund von Sicherheitseinschränkungen es ist super einfach nur, wenn das übergeordnete Fenster und das Popup aus der gleichen Domäne ist. Wenn das der Fall ist, nur diese verwenden:

// Store the return of the `open` command in a variable 
var newWindow = window.open('http://www.mydomain.com'); 

// Access it using its variable 
newWindow.my_special_setting = "Hello World"; 

Im Kind (Pop-up) Fenster, können Sie die Variable wie folgt zugreifen:

window.my_special_setting 

Gab es etwas Bestimmtes Sie vorbei, das tun wollte?

+0

hat super funktioniert, danke! – BeachRunnerFred

+1

Muß 'newWindow.window.myVariable = ...' in der Eltern- und 'myVariable' im Kindfenster benutzen. – Qwerty

+0

Danke. Es funktioniert gut .. –

-3

theWindow.someVar = "bla";

3

Unter der Annahme, es ist die gleiche Domäne ist, tun, was gesagt Bart. Wenn es sich um eine andere Domäne handelt, können Sie mit dem Hash-Tag einige Daten übergeben, z. B. http://www.example.com/page#some_data_for_the_page. Sie könnten Schlüssel-Wert-Paare URL-codieren, wenn Sie genügend Daten haben, um dies zu gewährleisten.

+0

Angesichts dieser Antwort ist fast 8 Jahre alt, ist das CORS freundlich? Purley aus Neugier. –

+0

@MarkCarpenterJr Nein, überhaupt nicht - alle Daten, die an diese Seite gesendet werden, befinden sich in der URL oder in Cookies. Allerdings erfordern einige Anwendungsfälle keine strengen CSRF-Prüfungen - insbesondere, wenn gerade Daten angezeigt werden und nichts gespeichert wird. In diesen Fällen sollte dies sicher sein. –

Verwandte Themen