У меня есть окно и iFrame в нем.
В iFrame я делаю postMessage с некоторыми данными, чтобы сообщить родителю, что нужно изменить местоположение.
Функция пост-сообщения работает хорошо.
Родительское окно хорошо его воспринимает.
По некоторым причинам безопасности у меня есть тест, прежде чем использовать event.data для изменения местоположения.
Я делаю:
if (event.origin === document.location.origin && event.source === frame.contentWindow)
Первая часть этого условия верна, поэтому никаких проблем.
Но вторая часть дает ложь, потому что:
В event.source у меня есть окно Object с некоторым бесполезным элементом:
Вы видите URL https: // .... но до и после есть некоторые хреновые элементы.
А в frame.contentWindow
у меня есть только URL like: « https://.... »
.
Итак, чтобы код работал, мне нужно взять first [0] of event.source
:
if (event.origin === document.location.origin && event.source[0] === frame.contentWindow)
Но зачем мне это делать?
Почему event.source не дает мне просто URL типа frame.contentWindow
?
Спасибо