有没有办法找出使用JQuery打印结束的时间。我不想在打印窗口关闭时但在实际打印完成时找到。我的问题是,当用户在我的网络应用程序上打印页面并快速从页面导航时,打印被切断并且不会给出整个打印结果。(我在想是否可以阻止UI直到实际打印结束,它会解决问题)。
答案 0 :(得分:4)
您可以组合使用window.onafterprint
(由IE 5+和FireFox 6+支持)并使用window.matchMedia
(由Chrome 9+和Safari 5.1+支持)。不幸的是,Opera也不支持。这是一个article,详细介绍了该方法。
以下是代码,以防链接被停用:
(function() {
var beforePrint = function() {
console.log('Functionality to run before printing.');
};
var afterPrint = function() {
console.log('Functionality to run after printing');
};
// supported by Chrome 9+ and Safari 5.1+
if (window.matchMedia) {
var mediaQueryList = window.matchMedia('print');
mediaQueryList.addListener(function(mql) {
if (mql.matches) {
beforePrint();
} else {
afterPrint();
}
});
}
// supported by IE 5+ and FireFox 6+
window.onbeforeprint = beforePrint;
window.onafterprint = afterPrint;
}());
答案 1 :(得分:3)
不,没有。 jQuery http://api.jquery.com API链接未列出任何打印机方法。对不起,但是你试图同时访问Mac& Windows打印机通过jQuery排队。队列是操作系统和操作系统的一部分。不是网络浏览器(OS应用程序)。因此,除非您使用的是C或C ++或Java,否则无法构建从打印机队列到多个浏览器的事件桥接。
不仅如此,还有微软和& Apple必须支持多家第三方公司,如Google。当他们拥有自己的网络浏览器时,他们不太可能这样做,例如。 IE& Safari,分别。免费网络浏览器的工作方式是他们尝试将默认流量路由到他们的搜索引擎中,以便他们可以提供广告和广告。从广告收益中获利。微软希望通过Bing(默认的IE搜索引擎)和广告提供广告来将资金投入他们的银行账户。没有进入谷歌的口袋。
因此,我们不太可能看到OS API跨浏览器jQuery解决方案,以便尽快打印。他们不会仅仅因为它使Web开发人员生活更轻松而实现这一功能。他们只想提供这种功能,如果他们能找到一种方法从中赚取数百万美元。
答案 2 :(得分:0)
$(document).ready(function () {
var delays='';
$('#PrintInput').on('keyup', function () {
clearTimeout(delays);
delays = setTimeout(function () {
// do something when printing stop after 5 sec.
},5000);
});
});