如何获取发布给定消息的iframe的引用?

时间:2011-05-18 21:43:23

标签: javascript postmessage

主窗口正在接收来自嵌套在其中的iframe的消息。

window.addEventListener("message", function(e){
 alert(e.data);
}, true);

我怎么知道消息来自哪个DOM元素?问题是我在文档中有几个,所有这些都来自同一个域,但主窗口不同。

1 个答案:

答案 0 :(得分:1)

在消息传递代码的Firefox实现中(可能还有其他),事件对象具有" uri"和"域名"您可以检查的属性,以及"来源"引用原始window对象的属性。

window.addEventListener("message", function(e){
    var frames = window.frames;
    for (var i = 0; i < frames.length; ++i)
        if (frames[i] === e.source) {
            // found it ...
        }
}