2009-12-02 17 views
6

Ho la finestra del browser principale P. facendo clic su un pulsante viene aperta una nuova finestra del browser WIN-A. quindi premendo nuovamente lo stesso pulsante dovrebbe leggere il titolo della finestra WIN-A e aprire WIN-BCome comunicare tra due finestre del browser?

come ottenere ciò usando Javascript?

Grazie in anticipo

risposta

3

Una domanda simile è stato appena chiesto di recente:

Stack Overflow domanda: Quickest way to pass data to a popup window I created using window.open()?

Utilizzando che come base (e fornito Capogruppo e WIN-A sono sullo stesso dominio):

// 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

Data:

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

Vecchio metodo: Modificare name proprietà dell'oggetto window:

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

metodo HTML5: Chiamare postMessage metodo dell'oggetto window:

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

Non avevo mai visto il (possibly_present_func_one || possibly_present_func_two) (args, args); tecnica prima. Freddo. –

+0

Trevor: Non dimenticare di usare '.call (the_object_that_is_supposed_to_be_the_parent, args)' se non è una proprietà di 'window'. –

+0

È bello usare assegnazioni di fantasia e operazioni stenografiche, ma per una pagina come SO in cui l'obiettivo principale è condividere le conoscenze, non è l'approccio migliore. Le persone non si sentono a proprio agio con JS "||" - oi compiti devono pensare che sembri criptico e non intuitivo. –

0

Quando si chiama window.open, restituisce un riferimento a la finestra appena aperta. È possibile memorizzare i riferimenti alle finestre aperte in un array e quindi iterare tale array quando è necessario aprire un'altra nuova finestra.

Gabriel

Problemi correlati