我正在使用fancybox2,我需要在pdf进入打印队列之前添加一些自定义函数意味着我需要fancybox打印回调(比如打印之前,打印之后),有人可以帮助我吗?我尝试了window.print()回调,但是在fancybox打印的情况下这些不起作用,以下是我使用的样本
$(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;
}());
这不适用于fancybox打印,但在我们尝试窗口打印时工作(就像我们使用ctrl + p时)。当我们点击fancybox pdf打印图标时,我需要处理打印回拨,请查看附图
以下是firefox截图,看看firefox如何呈现与crhome浏览器不同的花式框pdf,firefox使用pdf viewer。
在谷歌上花了一些时间之后,我发现fancybox在不同浏览器中嵌入pdf呈现方式不同(参见上面附图),firefox使用pdf查看器,chrome使用Adobe的查看器等,必须有一些东西我们可以控制所有pdf打印trhough javascript