通过消息事件获取iframe

Leg*_*tin 4 javascript iframe postmessage

我在页面上有几个具有相同来源(但路径名不同)的iframe。
每个iframe message通过发出事件postMessage
父窗口监听以下事件:

window.addEventListener('message', function(event) {
  /* Get iframe element by event */
});
Run Code Online (Sandbox Code Playgroud)

我想为每个事件获取源iframe元素。

重要的限制是event.source.contentWindow由于跨域访问,我无法访问。

UPD:请在下面回答

Leg*_*tin 5

解决方案是比较event.sourceiframe.contentWindow

function getFrameByEvent(event) {
  return [].slice.call(document.getElementsByTagName('iframe')).filter(function(iframe) {
    return iframe.contentWindow === event.source;
  })[0];
}
Run Code Online (Sandbox Code Playgroud)