我想知道如何在 Dart 上打印报告。
基本上,这是活动流程:
- 用户单击“报告”按钮。
- 新的浏览器窗口已创建。
- 相关数据被放置在新窗口中。
当然,如果有任何 API 可以做到这一点,我会使用它。
到目前为止,我尝试创建一个新窗口,在其上添加 onMessage 侦听器并在主类上调用 postMessage 来发送数据。然而,这并没有奏效。该消息永远不会到达另一端(主>新浏览器窗口)。
主要飞镖课程
var reportWindow;
void createReportWindow() {
reportWindow = window.open("report.html", "");
}
void sendMessage(String message) {
reportWindow.postMessage(message, "*");
}
报告 Dart 类(链接到report.html)
void startListening() {
window.onMessage.listen((e) {
print(e.data.toString());
});
}
Update
开始从报告窗口发送至window.opener.postMessage(...)
然后回应(message.source as WindowBase).postMessage(...)
。
这可能是一个返回值的错误window.open
(see http://dartbug.com/20216更多细节)。
Original
此单元测试中的代码应该向您展示如何完成它https://github.com/dart-lang/core-elements/blob/master/test/core_media_query_test.dart.
我从一个新的 URL 打开一个窗口,该窗口从服务器加载其内容和 Dart 脚本(当然也可以编译为 JavaScript)。打开的窗口通过以下方式与主窗口通信sendMessage
。这在两个方向上都有效。
基本上,第二个窗口是第二个 Dart 浏览器应用程序。
这可能不完全是您想要的,但我想您的要求可以通过这种方式实现。
在这一行https://github.com/dart-lang/core-elements/blob/master/test/core_media_query_test.dart#L66注释掉的代码可能适合您的要求。我创建了下面的解决方法,因为代码应该从主窗口中的代码调整第二个窗口的大小以测试<core-media-query>
元素(顺便说一句,也不起作用。)。但我假设您只需要打开窗口,注释掉的代码应该可以很好地做到这一点。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)