2017-06-07 19 views
0

ユーザが「印刷」ボタンをクリックするか、Ctrl + Pを発行するとイベントを処理する必要があります。その理由は、素晴らしい印刷物を作成するGWTアプリケーションに印刷メソッドを追加したからです。これはCSSではできません。したがって、我々はイベントをキャプチャする必要があります。私はすでにこれをここで見つけましたhttps://www.tjvantoll.com/2012/06/15/detecting-print-requests-with-javascript/しかし、私はGWTでそれを実装する方法はわかりません?どんな助けもありがたい。GWTブラウザウィンドウのプリントイベントを処理します

GWT 2.8を使用します。それはそう、私はそれをこのように解決して、私は非常に重要な

public native void handlePrintEvent() /*-{ 

    var theInstance = this; 
    (function() { 
     var beforePrint = function() { 
      console.log('Functionality to run before printing.'); 
      [email protected]::preparePrint()(); 
     }; 
     var afterPrint = function() { 
      console.log('Functionality to run after printing'); 

     }; 

     if (window.matchMedia) { 
      var mediaQueryList = window.matchMedia('print'); 
      mediaQueryList.addListener(function(mql) { 
       if (mql.matches) { 
        beforePrint(); 
       } else { 
        afterPrint(); 
       } 
      }); 
     } 

     window.onbeforeprint = beforePrint; 
     window.onafterprint = afterPrint; 
    }()); 
}-*/; 

変数theInstanceとの事:-)このようにJSNIについて多くのことを学んだすべての後

敬具 ハンネス

+1

これは重宝しますが、JSNI http://www.gwtproject.org/doc/latest/DevGuideCodingBasicsJSNI.html – WLGfx

+0

またはJsInteropを使用することができます願っています。それはそのようなことをする "新しい"方法だろう –

答えて

0

動作しません!

この機能は、いくつかのプリント固有のロジックを実行するために)次に、あなたが機能preparePrintを(実装する必要が印刷ハンドラに

をインストールするには、ウィジェット(com.myproject.xyz)クラスのC'torに呼び出されなければなりません(これは実際に私が必要としていたものでした)。

は、他の誰かが

関連する問題