
Web Messaging (tudzież cross-document messaging) jest to API wprowadzone do specyfikacji HTML5, pozwalające dokumentom pochodzących z różnych źródeł / domen komunikować się w bezpieczny sposób. To podstawowy poziom bezpieczeństwa pozwalający działać ponad zabezpieczeniami cross-site scripting.
HTML5 Web Messaging
Podstawą jest metoda postMessage, pozwalająca nawiązywać komunikację. Co ważne należy uzyskać dostęp do obiektu Window dokumentu docelowego.
Prosty przykład użycia:
var o = document.getElementsByTagName('iframe')[0]; o.contentWindow.postMessage('Hello!', 'http://the-site.com/');
Spójrzmy jednak na konkretne przykłady.
Jeden z lepszych znalazłem na teamtreehouse:
http://blog.teamtreehouse.com/cross-domain-messaging-with-postmessage
działający przykład można uruchomić od razu na codepen.io.
Całość działa na galowo, a sam przykład może stanowić gotową bazę dla naszych rozwiązań.
Zasoby
Poniżej przedstawiam więcej godnych uwagi zasobów.
– ciekawe demo możliwości na codeproject:
http://www.codeproject.com/Articles/248264/HTML-WebMessaging-Experiment
– niewielki ale przydatny tutorial:
http://klanguedoc.hubpages.com/hub/HTML5-Cross-Document-Messaging-Tutorial
– materiały na Dev Opera:
https://dev.opera.com/articles/window-postmessage-messagechannel/
Podsumowanie
HTML5 Web Messaging to ciekawa możliwość, o której warto pamiętać. Może być szybkim sposobem na wyjście z problematycznej sytuacji. A skoro możemy – korzystajmy.