ive been printing page using code below:
window.print();
an image below print preview in google chrome browser looks like. has 2 main buttons: print
, cancel
.
i want know if user had click print
or cancel
button. did use jquery:
html code of print preview:
<button class="print default" i18n-content="printbutton">print</button> <button class="cancel" i18n-content="cancel">cancel</button>
jquery code:
$('button > .cancel').click(function (e) { alert('cancel'); }); $('button > .print').click(function (e) { alert('print'); });
i tried code above no luck. missing?
you can not access chrome's internal windows (printing dialog in case) directtly regular web page.
(function () { var beforeprint = function () { alert('functionality run before printing.'); }; var afterprint = function () { alert('functionality run after printing'); }; if (window.matchmedia) { var mediaquerylist = window.matchmedia('print'); mediaquerylist.addlistener(function (mql) { //alert($(mediaquerylist).html()); if (mql.matches) { beforeprint(); } else { afterprint(); } }); } window.onbeforeprint = beforeprint; window.onafterprint = afterprint; }());
or if want when print preview gets open can try below.
$(document).bind("keyup keydown", function (e) { if (e.ctrlkey && e.keycode == 80) { settimeout(function () { callafterwindowload();}, 5000); return true; } });
function callafterwindowload() { alert("open , call"); }
reference: how capture click event on default print menu called javascript window.print()
may if provide requirement trying 2 buttons click event, may provide alternate solution that.