クロスドメイン間の通信を行う時、便利なPostMessage
送信側は下記のように送信します。
messageに送りたいデータ、targetOriginには送信先のURLを引数とします。
window.postMessage(message, targetOrigin);
受信側ですが、
receiveMessageをイベントリスナに登録します。
これで、通信が行われた際、receiveMessageが呼び出されます。
window.addEventListener("message", receiveMessage, false);
function receiveMessage(event)
{
if (event.origin !== "http://example.org:8080")
return;
}
これをjQueryに書き換えると
$(window).on("message", receiveMessage, false);
function receiveMessage(event)
{
if (event.originalEvent.origin !== "http://example.org:8080")
return;
}
ここで注意!
JavaScriptで書いた時のイベントオブジェクトのプロパティがEvent.originEvent以下にあります。
参考
window.postMessage
JQuery doesn't support postmessage event?