Я пытаюсь отправить сообщение из iframe в родительское окно.Я, конечно, хочу проверить origin
сообщения перед его обработкой.Но, похоже, "null"
.Что я делаю не так?
// Parent:
$(document).ready(function() {
loadIframe();
iframeListen();
});
loadIframe = function() {
var iframe;
iframe = document.createElement('iframe');
iframe.src = "/load_pages.htm";
iframe.sandbox = "allow-scripts";
iframe.id = "page_iframe";
iframe.onload = function() {
return postToIframe();
};
return document.body.appendChild(iframe);
};
iframeListen = function() {
return window.addEventListener('message', function(event) {
return console.log(event.origin); // "null"
});
};
iframe отправляет свое сообщение так:
// iframe:
<script>
window.top.postMessage('Hello parent', '*');
</script>
Информация о бонусе: Когда я отправляю сообщения в iframe, я получаю ожидаемый источник:
// Parent:
$(document).ready(function() {
window.top.postMessage('Hello iframe', '*');
};
// iframe:
window.addEventListener('message', function(event) {
console.log(event.origin); // "http://localhost:3000"
});