Я уверен, что это просто проблема с моим синтаксисом, но я пытаюсь отправить переменную в iframe (для использования colorbox). Пока я принимаю любые домены на обоих концах (просто чтобы заставить его работать). Вот это JS для отправки страницы:Использование postMessage() не принимается
$(document).ready(function() {
if(window.location.hash) {
var urlimage = window.location.hash.substring(1);
targetiframe = document.getElementById('wbgallery').contentWindow;
targetiframe.postMessage(urlimage, "*");
console.log(urlimage);
}
});
А вот получающая страница:
$(document).ready(function() {
window.addEventListener('message',receiveMessage);
console.log(event);
function receiveMessage(event) {
if (origin !== "*")
return;
inbound = event.data;
console.log(inbound);
}
});
Я вижу журнал консоли для urlimage и могу видеть событие, но ничего для въездного. Я использую Mozilla's explanation, чтобы попытаться все исправить.
'receiveMessage' использует переменную' origin', который никогда не был установлен. Поэтому он возвращается. – Barmar
У вас также есть 'console.log (event)' вне функции с параметром 'event'. Что это должно было делать? – Barmar
Я думаю, что 'origin' должно быть' event.origin', но почему вы так беспокоитесь? Он никогда не может быть '*', это всегда URL. – Barmar