javascriptiframecross-domainpostmessageopera-mini

Cross domain messaging in Opera Mini


I have implemented a cross domain messaging between the main page and an iframe. It works on all browsers except for Opera Mini.

The parent page has the following code:

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

The iframe page has this code:

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

When the iframe tries to access window.parent to execute the postMessage method Opera Mini throws an exception: 'Security error: attempted to read protected variable'. All other browsers will not complain.

See example here: http://mala.s3-eu-west-1.amazonaws.com/main.html

Is there a workaround?


Solution

  • I created a bug report with Opera and they confirmed the issue. https://forums.opera.com/discussion/1874319/cross-domain-messaging-in-opera-mini#Item_1

    It should be fixed in a few days.