Javascript обмен на данни между прозорци и вградена рамка чрез postmessage

Предаването на информация между главния прозорец и вградена рамка на страница или прозорец дете е възможно благодарение на новите функции на HTML5. Сега можете лесно да изпратите JSON обект, например, в открита вградена рамка на друг домейн. Това стана възможно благодарение на window.postMessage.

Можете да използвате следния код, за да получите данните на страницата

Или същия метод, но без да се консултирате с източника на данни за JQuery са прехвърлени

хванем съобщение събитие, за да получи съобщението. В първия пример, ние проверяваме казана, където дойде на искането.

За изпращане на данни се използва метод window.postMessage (съобщение, targetOrigin);

Къде съобщение - данни. Според спецификацията, това може да е всеки обект, за да се клонира в структурата на peredache.No IE поддържа само низове, така че обикновено данни JSON-Сериализирането.

targetOrigin - позволи съобщения само от прозорците на източника. Проверката се извършва браузър. Когато зададете "*" Няма ограничения. Препоръчително е винаги да се посочи източника, които ще се предотврати получаването на данни от трети страни.

На страница имаме едно с вградена рамка ИД = »вградена рамка» и три бутона. С натискане на бутона 2 от тях става събитие за данни и един - за създаване на нов прозорец.

Подобен начин можете да изпращате съобщения от вътрешна рамка за основната страница, използвайки window.parent

Готов пример може да бъде изтеглен тук пример за изпитание. По-добре е да го поставите на уеб сървър и след това гледат. Или се види работата тук.

UPD: Е, разбира се, не без своите проблеми за браузъра IE. До 10 версии чрез postMessage може само преминават линия.