Opera Mini 中的跨域消息传递

Cross domain messaging in 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 抛出异常:'Security error: attempted to read protected variable'。所有其他浏览器都不会抱怨。

参见此处示例:http://mala.s3-eu-west-1.amazonaws.com/main.html

有解决办法吗?

我用 Opera 创建了一个错误报告,他们确认了这个问题。 https://forums.opera.com/discussion/1874319/cross-domain-messaging-in-opera-mini#Item_1

应该会在几天内修复。