Cross iFrame communication fixes

Apparently Google Chrome did not like the way I was handling iFrame
communication prior to this commit. So I changed the way I handled it
and implemented message posting and listening instead. Works like a
charm.