GWT: добавить обработчик к собственному событию js onafterprint - PullRequest
0 голосов
/ 26 февраля 2020

У меня есть виджет GWT, представляющий предварительный просмотр документа. В этом виджете кнопка / действие печати управляется внешней службой Chrome. Мне нужно обнаружить родное событие window.onafterprint из моего кода jave.

Как я могу это сделать?

Не удалось указать код:

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
}

1 Ответ

0 голосов
/ 02 марта 2020

Один из способов добиться этого - экспортировать обработчик 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"); 
}
...