2017-07-05 10 views
0

javascriptで印刷イベントを検出する際に問題があります。 たとえば、ユーザーはドキュメントを印刷してウェブページの印刷を押すと、別のウィンドウが表示されます。 Adobe Readerから印刷する場合、Adobe Readerの別のウィンドウが表示され、プロパティを設定したり、印刷するページを選択したりできません。このウィンドウに印刷ボタンがあります。 javascriptを使用してこのAdobe Readerウィンドウのブラウザでこの印刷ボタンを押したときに実際に検出できますか?ユーザーがjavascript経由で何かを印刷するかどうかを検出します

私は既にonafterprintを使ってみましたが、これを正しくやっていないか、わかりません。

これは、私のメインのjsファイルの中で、このようなものでした。 https://www.tjvantoll.com/2012/06/15/detecting-print-requests-with-javascript/

答えて

0

あなたはコード何もしないことを実現してください:

window.onbeforeprint = function() { 
    console.log('This will be called before the user prints.'); 
}; 
window.onafterprint = function() { 
    console.log('This will be called after the user prints'); 
}; 

は、私はここから取ったということ? これはあなたを助けるでしょう。

(function() { 
    var beforePrint = function() { 
     console.log('Functionality to run before printing.'); 
    }; 
    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; 
}()); 

開いているページでデベロッパーコンソールで実行してから、Ctrl-Pを押すと、メッセージが表示されます。

+0

あるので、私は、あなたがちょうどあなたがコピー/ページの/ etcのプリンタと数を選択し、通常の印刷ポップアップを意味するのAdobe Readerで想定していますこれは、Ctrl + Pを押して印刷しようとしている場合にのみ機能します。ユーザーが「印刷」をクリックしてプリンタに移動したときに、そのイベントをキャッチする必要があります。文字通り、印刷しようとしているときのみ。 – CodePuppe

+0

ファイル - >プリントまたはを意味しますか?最初のものは、少なくともChromeで動作しているからです。 –

+0

私は '

0

同じリンクにmatchMediaを使用してみましたか?

(function() { 
    var beforePrint = function() { 
     console.log('Functionality to run before printing.'); 
    }; 
    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; 
}()); 
私は一度PDFとしてエクスポートしても、私は(

は、ブラウザの互換性チェックの完全なバッテリーを行っていないが、onafterprintものは動作しないのに対し、そのコードは、Safariの10.1.1に私のために両方のステートメントを動作し、出力します私はプリンタを持っていないので、印刷ダイアログにありました)。

限り、私は承知しているとしてAdobe Readerは、デスクトップソフトウェア

+0

ええ、アドレス欄に私のサーバーipを入れてブラウザウィンドウで開きます。方法はありますか? – CodePuppe

関連する問題