2016-04-15 16 views
0

iFrameでJavaScriptを実行する必要がありますが、投稿メッセージを使用してこれを行う必要があることを理解していますが、使用方法がわかりません。postMessageで送信されたデータにアクセスする方法は?

サイト1は、(サイト1上のiFrame)であるhttp://www.example.com:7778

サイト

$("#link").click(function() { 
    document.getElementById('iframe_id_here').contentWindow.postMessage({command: 'joinChannel', args: {channel: $(this).attr('data-room')}}, '*'); 
}); 

のiFrame

function joinChannel(event) 
{ 
    if (event.origin !== "http://example.com/chat.html") 
    return; 

    network.join(***How do I access $(this).attr('data-room')?***, ''); 
} 

window.addEventListener("message", joinChannel, false); 
+0

あなたは[this](http://stackoverflow.com/q/364952/4340788)の質問を見たいかもしれませんか? – Burki

+0

http://stackoverflow.com/questions/1663242/calling-a-function-inside-an-iframe-from-outside-the-if​​rameの可能な複製もあります。 – Shakespeare

+0

なぜあなたはそれらを別のポートに持っていますか?あなたは同じドメインとポートを使うことはできませんか? – putvande

答えて

1

window.postMessagehttp://www.example.com/chat.html サイト2であり、渡されたメッセージであります保存されたi n event.dataオブジェクトです。

あなたの場合、チャンネルはevent.data.args.channelでアクセス可能である必要があります。

関連する問題