Kommunikation mellem windows/faner med JavaScript

Indlæg af Hanne Mølgaard Plasc

Problem




    Dette spørgsmål har allerede et svar her:

    

            

  •             Kommunikation mellem faner eller vinduer
                    
                        8 svar
                    

            

  •     

Bedste reference


Tjek denne http://bytes.com/topic/javascript/insights/913606-javascript-communication-between-browser-windows-tabs er alle forklaret der. /questions/28230845/communication-between-tabs-or-windows [6]


Eller se denne demo http://theprivateland.com/bncconnector/demo.htm[7]

Andre referencer 1


Jeg fandt en måde, jeg kan lave to flashfilm på hver side med LocalConnection for at påberåbe JavaScript på den anden side ved hjælp af eksternt interface.


Sæt dette i en AS3 swf, dette er modtageren:


import flash.external.ExternalInterface;
import flash.net.LocalConnection;

var mLocalConnection:LocalConnection;
mLocalConnection = new LocalConnection();
mLocalConnection.connect("xivioview");
mLocalConnection.client=this;

function recieveText(textRecieved):void {
ExternalInterface.call(textRecieved);
};


Og afsenderen swf:


import flash.external.ExternalInterface;
import flash.net.LocalConnection;

function sendtoview(con,val):String {
//create local connection for sending text
var sending\_lc:LocalConnection;
sending\_lc = new LocalConnection();
sending\_lc.send("xivioview", "recieveText", val);
return "kk"
}
ExternalInterface.addCallback("sendtoview", sendtoview);


Dette er oprettet for envejs, og javascript til at bruge det:


document.getElementById("youembeddedobject").sendtoview("xivioview","alert('Hai!')")


Det vil udføre den JavaScript-kode på modtagerens faneblad, men det vil ikke blive udført, før du går tilbage til fanen (jeg har allerede stillet et spørgsmål hvorfor og har endnu ikke svar)

Andre referencer 2


Kommunikation mellem forskellige JavaScript-udførelseskontekst blev understøttet lige før HTML5, hvis dokumenterne var af samme oprindelse. Hvis ikke, eller du ikke har nogen henvisning til det andet Window objekt, kan du bruge den nye postMessage API introduceret med HTML5. Jeg uddybte lidt på begge tilgange i dette stackoverflow svar.

Andre referencer 3


Den eneste måde jeg kan tænke på ville være at bruge XHR. Hvert vindue/fane kommunikerer med serveren, som igen kommunikerer tilbage med andre vinduer, stort set på samme måde gmail chat fungerer. Bortset fra at du ville have 2 vinduer på samme klient, snarere end 1 vindue på 2 klienter.

Andre referencer 4


Jeg ville bare have en javascript-eksekvering i siden belastning, der ville kontinuerligt afstemning (window.setInterval) sessionStore for et flag, der siger nogen sendte mig en besked, så læs den besked fra sessionen Store og derefter gøre hvad der kræves.