Как получить ссылку на iframe, который разместил данное сообщение? - PullRequest
1 голос
/ 19 мая 2011

Главное окно получает сообщения от вложенных в него фреймов.

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

Как я могу узнать, с какого элемента DOM пришло сообщение? Дело в том, что у меня их несколько в документе, и все они принадлежат одному домену, но отличаются от основного окна.

1 Ответ

1 голос
/ 19 мая 2011

В реализации Firefox кода передачи сообщений (и, возможно, других) объект события имеет свойства «uri» и «domain», которые вы можете исследовать, и свойство «source», которое ссылается на исходный объект 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 ...
        }
}
...