我在MessageEvent上启动一个监听器,如下所示:
window.onMessage.listen((MessageEvent e) {
if (e.source == newWindow) {
// Do something.
}
});
我打开" newWindow"像这样:
newWindow = window.open("some_page.html", "");
现在让我们进行意外行为:
(e.source == newWindow)
Dart返回TRUE,而JavaScript(从Dart编辑器构建)返回FALSE。
只是为了澄清,当" newWindow"发送消息给它的开启者(通过window.opener.postMessage),我的应用程序应该接受消息,因为" source等于newWindow"。事实上它正在发挥作用。然而就在Dart代码上。当应用程序通过JavaScript执行时,这不起作用。验证" e.source等于newWindow"返回false。
关于为什么会发生这种情况的任何想法?