window.addEventListener для сообщения, отправленного из iframe - PullRequest
0 голосов
/ 04 февраля 2019

У меня есть два HTML-файла.Первый называется post.html, и он регистрирует прослушиватель событий в окне и отправляет сообщение в окно:

<html>
    <head>
        <script>
            window.addEventListener("message", function(event) {
                console.log("found event in post!", event)
            }); 
            window.postMessage({
               'data': ["some data"]
            },"*");   
        </script>
    </head>
    <body>
    </body>
</html>

У меня есть второй HTML-файл с именем listner.html, который просто прослушивает сообщение отокно и загружает post.html как iframe:

<html>
    <head>
        <script>
            window.addEventListener("message", function(event) {
              console.log("event found in listen!", event)
            }); 
        </script>
    </head>
    <body>
        <iframe src="post.html"></iframe>
    </body>
</html>

Если я загружаю listener.html, я получаю журнал, указывающий, что прослушиватель событий в post.html обнаружил сообщение, отправленное в окно в post.html но я не получаю никаких журналов от listener.html.Насколько я понимаю, я должен иметь возможность связываться через объект window между двумя файлами, и прослушиватель событий в listener.html должен получить событие.Есть идеи, почему это не работает?

1 Ответ

0 голосов
/ 04 февраля 2019

post.html отправляет сообщение в собственное окно, а не в окно, содержащее listener.html

window.parent.postMessage(...)
...