window.postMessage in your web app sends to the main document’s window, not to the iframe’s.
Specify the iframe’s window object:
document.getElementById('cross_domain_page').contentWindow.postMessage(.......)
Alternatively, you can switch to the more secure externally_connectable messaging.