Междоменный обмен сообщениями в Opera Mini

Я реализовал междоменный обмен сообщениями между главной страницей и iframe. Работает во всех браузерах, кроме Opera Mini.

Родительская страница имеет следующий код:

if (window.addEventListener) {
    window.addEventListener("message", function(event) { alert(event.data);}, false);
} else if (window.attachEvent) {
    window.attachEvent("onmessage", function(event) { alert(event.data);});
}

На странице iframe есть этот код:

window.parent.postMessage('test', '*');

Когда iframe пытается получить доступ к window.parent для выполнения метода postMessage, Opera Mini выдает исключение: «Ошибка безопасности: попытка прочитать защищенную переменную». Все остальные браузеры жаловаться не будут.

См. Пример здесь: http://mala.s3-eu-west-1.amazonaws.com/main.html

Есть ли обходной путь?


person prearrangedchaos    schedule 29.07.2016    source источник


Ответы (1)


Я создал отчет об ошибке в Opera, и они подтвердили проблему. https://forums.opera.com/discussion/1874319/cross-domain-messaging-in-opera-mini#Item_1

Это должно быть исправлено в течение нескольких дней.

person prearrangedchaos    schedule 02.08.2016