@newaitix

Как передать сообщение из фрейма?

Пытаюсь передать сообщение из фрейма в родительское окно.
Родительское окно имеет адрес coinlist.queue-it.net окно фрейма assets-us-west-2.queue-it.net.
Внутри фрейма работает один скрипт
function run(){
	var aTags=[].slice.call(document.getElementsByTagName('a'));
	aTags.forEach(function(el){
		if(el.innerText=='Re-enter the waiting room'){
			console.log('send');
			window.frames.self.postMessage({
				url:el.getAttribute('href'),
				messageType:'openWindow'
			},window.location.origin);
		}
	});
}
(function(){
	setInterval(function(){
		run();
	},10000);
})();


Внутри родительского окна работает другой скрипт.
function listener(event){
	if(event.data.messageType=='openWindow'){
		console.log(event);
	}
}
if(window.addEventListener){
	window.addEventListener("message",listener);
} else {
	window.attachEvent("onmessage",listener);
}


Вообще возможно ли передать сообщение из фрейма в окно если фрейм с другого субдомена грузится?
  • Вопрос задан
  • 61 просмотр
Решения вопроса 1
Aetae
@Aetae Куратор тега JavaScript
Тлен
Если фрем может быть подключён только к одному конкретному сайту, то заменить window.location.origin на origin целевого сайта. Если к нескольким, то либо заменить на звёздочку(*), если вам добра не жалко, либо вызывать postMessage несколько раз подряд, по одному для каждого домена.

P.S. attachEvent? Серьёзно?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы