我可以在Javascript中获取父窗口名称,并且不知道如何在Dart中执行此操作。 我试图将window.opener向下转换为Dart中的窗口,但它会抛出异常。 根据{{3}},我们是否应该将其视为窗口基本属性?
//js version:
window.opener.name
//dart version:
(window.opener as ?).name
答案 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。