2017-12-07 5 views
1

window.print()を実行するクリックイベントでトラッキング呼び出しを実行しようとしています。最初にトラッキング呼び出しを入れましたが、ダイアログボックスが閉じられるまで実行されません。Chromeプリントダイアログは、ダイアログがキャンセルまたは印刷されるまで別のJavaScript関数を実行しません。

FirefoxとIEはすべてを順番に実行します。この問題はChromeに固有の問題です。 私はいくつかのテキストを保存しましたが、正しい順序で表示されますが、ダイアログボックスを閉じるまで、ネットワークはトラッキングコールを表示しません。

誰もがこの問題を回避する方法を知っていますか?

function printTrack(pn) { 
     return new Promise(function (resolve, reject) { 
      resolve(_satellite.setVar('pdf_name', pn), 
      _satellite.track('pdf_print')); 
     }); 
    } 

    printTrack(printName).then(function (result) { 
     window.print(); 
    }); 
+1

はあなたのコードを投稿することができます:

<script> function printTrack(){ _satellite.track('something'); window.print(); } </script> <button id="print-button" onclick="javascript:printTrack()">Print</button> 
Barmar

+0

これは 'window.open()'という新しいウィンドウで行いますか?私は、親ウィンドウをブロックしている子ウィンドウ内の 'window.print()'についてgoogleで多くのヒットを見つけました。それは既知のバグです。 – Barmar

+0

ウィンドウなし。 function printTrack(){ _satellite.track( 'blah'); window.print(); } これはかなり簡単です。トラッキング呼び出しでタイムアウトを設定していて、それも機能しませんでした。 – kiapnamor

答えて

0

私は約束を使用することによってこの問題を解決することができましたか?
関連する問題