クロスドメイン間の通信を行う時、便利な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?