是否可以检测用户何时从浏览器打印内容?
更复杂的是,如果我们在新窗口中向用户展示PDF文档,是否可以检测该文档的打印(假设用户从浏览器窗口打印)?
我能找到的最接近的是我们是否实现了自定义打印功能(类似这样)并跟踪何时调用它
我主要对一个适用于Internet Explorer(6或更高版本)的解决方案感兴趣
您现在可以使用以下技术在IE 5 +,Firefox 6 +,Chrome 9+和Safari 5+中检测打印请求:
(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; }());
我在http://tjvantoll.com/2012/06/15/detecting-print-requests-with-javascript/上详细介绍了这项工作以及可以使用的内容.
对于Internet Exploder,有事件window.onbeforeprint
,window.onafterprint
但它们不能与任何其他浏览器一起使用,因此它们通常是无用的.
它们似乎由于某种原因完全相同,都在打印窗口打开之前执行它们的事件处理程序.
但是,如果你想要它,尽管有这些警告,这是一个例子:
window.onbeforeprint = function() { alert("Printing shall commence!"); }