我有一个代表文档打印预览的GWT小部件。
在此小部件中,打印按钮/操作由外部Chrome服务管理。
我需要从我的jave代码中检测本地window.onafterprint事件。

我怎样才能做到这一点?

提供代码失败:

var popup = $wnd.open(url, title, ""); // this open the preview window

popup.onafterprint = function (ev) {
   $wnd.console.log("mess 2"); // to try to see if detect the print button
}

最佳答案

实现此目的的一种方法是将Java处理程序导出到Javascript,这种Javascript事件可以调用Java处理程序:

public MyUtilityClass {
    public static int handleOnAfterPrint(String message) { ... }
    public static native void exportStaticMethod() /*-{
       $wnd.handleOnAfterPrint =
          $entry(@mypackage.MyUtilityClass::handleOnAfterPrint(Ljava/lang/String;));
    }-*/;
}


因此,您可以执行以下操作:

popup.onafterprint = function (ev) {
  handleOnAfterPrint("mess 2");
}

10-05 23:14