2016-09-27 6 views
1

私は、ページに含まれるページごとにQRコードをレンダリングするサイトを用意しています。 ページがレンダリングされると、今はQRコードが取得されています。 (そのajaxコール) 私が持っている問題Ajax Print on Printビュー

QR-Imageはページの印刷バージョンに対してのみ必要なので、CSS @media printが適用されている場合を除いてdivは実際には隠されています。

ユーザーがページの印刷バージョンを呼び出すときにのみ、私がajax呼び出しを行う方法があるかどうかは疑問でした。なぜなら、ほとんどの時間隠されているリソースを無駄にしているからです。

私は今、どのように手がかりを持っていないし、正しい方向へのプッシュを感謝します。 old blog from TJ VanToll

で説明 彼が使用することができます.matchMediaウィンドウを提案している... コード:私は別の方法を見つけたと思ったmutationobserverと提案した解決策を試した後まあ

EDIT

var mediaQueryList = window.matchMedia('print'); 
mediaQueryList.addListener(function(mql) { 
    if (mql.matches) { 
    console.log('onbeforeprint equivalent'); 
    } else { 
    console.log('onafterprint equivalent'); 
} 

これは単純で正確に必要なものです。NOPE!

問題は、「印刷」コマンドの応答を停止することが必要なので、私は必要なイメージでサーバーから応答を得ます...しかし、これはケースではありません...今、私の印刷プレビューが画像なしで開かれます。 印刷用に2回目を開いたら、イメージはそこにあります...もちろん..最初の試しから読み込まれました!

アイデア?

答えて

1

これはテストする必要がありますが、mutationobserverを使用してqr部分が表示されるようになったときに確認できます。その後、ajax呼び出しをトリガーします。

http://fiddle.jshell.net/Lru99de0/1/light/

+0

これはいいです。ありがとう – CodeHacker