Communicating Windows
Send Message to Child Frame
Open Child Frame
Submit
Message from Child Frame
Parent Frame HTML
Send Message to Child Frame
Open Child Frame
Submit
Message from Child Frame
Parent Frame JavaScript
storm_eagle.module('communicating_with_child_window', () => { 'use strict'; let self; let _CHILD_WINDOW = null; return { initialize: () => { self = storm_eagle.communicating_with_child_window; self.add_open_window_listener(); self.add_form_submit_listener(); self.add_message_listener(); }, add_open_window_listener: () => { document.getElementById("open-window-button").addEventListener("click", event => { let params = 'location=1, status=1, menubar=1, toolbar=1, width=650, height=800, left=900, top=200'; _CHILD_WINDOW = window.open(`/examples/communicating-windows/child/`, `_blank`, params); }); }, add_form_submit_listener: () => { document.getElementById("parent").addEventListener("submit", event => { event.preventDefault(); event.stopPropagation(); _CHILD_WINDOW.postMessage(document.getElementById("message").value, window.location.origin); }); }, add_message_listener: () => { window.addEventListener('message', event => { document.getElementById("from-child").innerHTML = event.data; }); } }; })
Child Frame HTML
Send Message to Parent Frame
Submit
Message from Parent Frame
Child Frame JavaScript
storm_eagle.module('communicating_with_parent_window', () => { 'use strict'; let self; return { initialize: () => { self = storm_eagle.communicating_with_parent_window; self.add_form_submit_listener(); self.add_message_listener(); }, add_form_submit_listener: () => { document.getElementById("child").addEventListener("submit", event => { event.preventDefault(); window.opener.postMessage(document.getElementById("message").value, window.location.origin); }); }, add_message_listener: () => { window.addEventListener('message', event => { document.getElementById("from-parent").innerHTML = event.data; }); } }; })