如何访问postMessage中发送的数据?

时间:2016-04-15 14:41:02

标签: javascript jquery html html5 iframe

我需要在iFrame中运行JavaScript,我知道我必须使用post message来执行此操作,但我不明白如何使用它。

网站1为http://www.example.com/chat.html 站点2(站点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);

1 个答案:

答案 0 :(得分:1)

In window.postMessage, the passed message is stored in the event.data object.

In your case, the channel should be accessible via event.data.args.channel.