目次
検証環境
ブラウザ:Firefox 44.0.1
jQetry: 1.8.1
実装する
クリックイベントをユニバーサルアナリティクスに登録した後に、印刷をさせます。
バラバラの処理なら以下のものを記述する。
pageTracker._trackEvent('banner', 'click', 'check!');
window.print();
そのまま2つの処理を書けば良いのでは、と思われるかもしれませんが、
そのままやってしまうと、ユニバーサルアナリティクスに登録される前に
印刷が動作してしまうので、本当の正確なデータが取れません。
そこで、promise を使って、処理の順番を指定してあげます。
以下のスクリプトだと、ユニバーサルアナリティクスに反映した後に、印刷のポップアップが表示されます。
$("[class*='btn-']").click(function(){ var d = new $.Deferred; (function () { setTimeout(function () { pageTracker._trackEvent('banner', 'click', 'check!'); d.resolve(); }, 500); return d.promise(); })().done(function () { window.print(); }); });
<input type="button" class="btn-print" value="印刷する" />
動作の確認
サンプルは、アナリティクスの代わりにアラートがでるようになってます。
http://jsdo.it/kabanoki/y80m/fullscreen
以上、お疲れ様でした。