Javascript schimbul de date între ferestre și iframe prin PostMessage

Transmiterea informațiilor între fereastra părinte și iframe pe o pagină sau o fereastră de copil este posibilă datorită noilor caracteristici ale HTML5. Acum puteți trimite cu ușurință un obiect JSON, de exemplu, într-un iframe deschis pe un domeniu diferit. Acest lucru a fost posibil datorită window.postMessage.

Puteți utiliza codul de mai jos pentru a obține datele de pe pagina

Sau aceeași metodă, dar fără a verifica cu sursa de date privind jQuery au fost transferate

prindem mesajul eveniment pentru a primi mesajul. În primul exemplu, vom verifica în continuare unde a venit cererea.

Pentru a trimite date utilizând metoda window.postMessage (mesaj, targetOrigin);

În cazul în care mesajul - date. Conform caietului de sarcini, acest lucru poate fi orice obiect care urmează să fie donată în structura la peredache.No IE suportă doar siruri de caractere, asa ca de obicei date JSON-serializare.

targetOrigin - permite primirea mesajelor doar de la ferestrele sursei. Verificarea este efectuată de browser. Când specificați „*“ Nu există restricții. Este recomandabil să se indice întotdeauna sursa care ar împiedica primirea datelor de către terți.

Pe pagina avem una cu iframe id = »iframe» și trei butoane. Făcând clic pe 2 dintre ele se întâmplă un eveniment de date, iar unul - pentru a crea o fereastră nouă.

Un mod similar, puteți trimite mesaje de la iframe la pagina părinte folosind window.parent

Gata exemplu poate fi descărcat de aici Exemplu de test. Este mai bine să-l plaseze pe un server web și apoi urmăriți. Sau vezi lucrarea de aici.

UPD: Ei bine, desigur, nu fără probleme sale pentru browser-ul IE. Până la 10 versiuni prin postMessage pot trece doar linia.