@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);
}


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

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

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

Войти через центр авторизации
Похожие вопросы
26 апр. 2024, в 07:20
2000 руб./за проект
26 апр. 2024, в 06:46
1000 руб./в час
26 апр. 2024, в 05:31
1000 руб./за проект