我正在使用fancybox2,我需要在pdf进入打印队列之前添加一些自定义函数意味着我需要fancybox打印回调(比如打印之前,打印之后),有人可以帮我吗?我尝试了 window.print() 回调,但在 fancybox print 的情况下这些回调不起作用,以下是我使用的示例
$(function(){
var beforePrint = function() {
alert("BEfore print")
console.log('Functionality to run before printing.');
};
var afterPrint = function() {
console.log('Functionality to run after printing');
alert("After print")
};
if (window.matchMedia) {
var mediaQueryList = window.matchMedia('print');
console.log("Match media ..." + mediaQueryList)
mediaQueryList.addListener(function(mql) {
console.log("Mql matches ...."+ mql.matches)
if (mql.matches) {
beforePrint();
} else {
afterPrint();
}
});
}
window.onbeforeprint = beforePrint;
window.onafterprint = afterPrint;
}());
这不适用于花式框打印,但在我们尝试窗口打印时(例如使用 ctrl + p 时)有效。当我们点击fancybox pdf打印图标时,我需要处理打印回调,请看附图
下面是firefox的截图,看看firefox渲染fancy box pdf和crhome浏览器的区别,firefox使用pdf查看器。
在我在google上花了一些时间后,我发现fancybox embed pdf在不同的浏览器中呈现不同(见上图),firefox使用pdf查看器,chrome使用Adobe的查看器等,必须有一些东西可以通过javascript控制所有pdf打印