2009-12-02 16 views
6

Ich habe Eltern Browser-Fenster P. Beim Klicken auf eine Schaltfläche wird ein neues Browserfenster WIN-A geöffnet. dann wieder die gleiche Taste drücken sollte es den Titel des WIN-A-Fensters lesen und öffnen WIN-BWie kommuniziert man zwischen zwei Browserfenstern?

Wie erreichen Sie dies mit Javascript?

Vielen Dank im Voraus

Antwort

3

Eine ähnliche Frage vor kurzem gefragt wurde:

Stack-Überlauf Frage: Quickest way to pass data to a popup window I created using window.open()?

verwenden, die als Basis (und vorausgesetzt, Eltern und WIN-A auf der gleichen Domäne sind):

// Put outside click handler 
var winA = null; 

// Put inside click handler 

if(!winA){ 
    // Store the return of the `open` command in a variable 
    var winA = window.open('http://www.mydomain.com/page1'); 
} else { 
    var title = winA.document.title; 
    // Do something with title 
    var winB = window.open('http://www.mydomain.com/page2'); 
} 
4

Gegeben:

var myWindow = open("foo.bar"); 

Alte Methode: Ändern Sie die name Eigenschaft Fensterobjekt:

myWindow.name = "..."; 
// in foo.bar: 
setInterval(someFunctionToCheckForChangesInName, 100); 

HTML5-Methode: Rufen Sie das postMessage Methode des Window-Objekt:

myWindow.postMessage("...", "*"); 
// in foo.bar: 
(window.addEventListener || window.attachEvent)(
    (window.attachEvent && "on" || "") + "message", function (evt) { 
    var data = evt.data; // this is the data sent to the window 
    // do stuff with data 
    }, 
false); 
+2

Ich hatte nie die (possibly_present_func_one || possibly_present_func_two) gesehen (args, args); Technik vorher. Cool. –

+0

Trevor: Vergiss nicht, '.call (the_object_that_is_supposed_to_be_the_parent, args)' zu verwenden, wenn es keine Eigenschaft von 'window' ist. –

+0

Es ist cool, ausgefallene Zuweisungen und Kurzbefehle zu verwenden, aber für eine Seite wie SO, wo der Schwerpunkt darauf liegt, Wissen zu teilen, ist es nicht der beste Ansatz. Menschen, die sich nicht wohl fühlen mit JS "||" - oder Aufgaben müssen denken, dass es kryptisch und nicht intuitiv aussieht. –

0

Wenn Sie window.open aufrufen, gibt es einen Verweis auf das neu geöffnete Fenster. Sie können die Verweise auf die Fenster speichern, die Sie in einem Array öffnen, und dann das Array wiederholen, wenn Sie ein weiteres neues Fenster öffnen müssen.

Gabriel

Verwandte Themen