我在页面上有几个相同来源(但路径名不同)的iframe
每个iframe都会通过message
发出postMessage
个事件
父窗口监听这些事件:
window.addEventListener('message', function(event) {
/* Get iframe element by event */
});
我想为每个事件获取源iframe元素。
重要的限制是我因为交叉来源而无法访问event.source.contentWindow
。
UPD:回答
答案 0 :(得分:4)
解决方案是比较event.source
和iframe.contentWindow
:
function getFrameByEvent(event) {
return [].slice.call(document.getElementsByTagName('iframe')).filter(function(iframe) {
return iframe.contentWindow === event.source;
})[0];
}