如何从dart中的父窗口获取窗口名称?

时间:2015-04-28 00:45:27

标签: dart dart-html

我可以在Javascript中获取父窗口名称,并且不知道如何在Dart中执行此操作。 我试图将window.opener向下转换为Dart中的窗口,但它会抛出异常。 根据{{​​3}},我们是否应该将其视为窗口基本属性?

//js version:
window.opener.name
//dart version:
(window.opener as ?).name

2 个答案:

答案 0 :(得分:1)

可以使用弹出窗口window.opener和iframe window.parent。在实施_DOMWindowCrossFrame时,两者都会返回不支持name的{​​{1}}。这也是你无法施展到WindowBase的原因。您应该使用window来交流和交换信息。

另请参阅此implementation note其字段和方法只能通过JavaScript访问。

答案 1 :(得分:1)

另一种方法是使用dart-js-interop

import 'dart:js' as js;

print(new js.JsObject.fromBrowserObject(
    js.context['window'])['opener']['name']);

Dart目前没有办法。出于安全原因,故意拒绝访问Windows对象。根据对相关错误报告的评论,他们考虑更改它,因为无论如何它都可以使用dart-js-interop。