了解打印何时完成 Jquery

Find out when printing finishes Jquery

本文关键字:Jquery 何时完 打印 了解      更新时间:2023-09-26

有没有办法使用 JQuery 找出打印何时结束。我不想找到打印窗口何时关闭,而是实际打印何时完成。我的问题是,当用户在我的 Web 应用程序上打印页面并从页面快速导航时,打印会被切断并且不会给出整个打印结果。(我在想如果我可以阻止 UI 直到实际打印结束,它将解决问题)。

您可以使用window.onafterprint(IE 5+和FireFox 6+支持)和使用window.matchMedia(Chrome 9+和Safari 5.1+支持)的组合。不幸的是,Opera也不支持。这是一篇详细介绍该方法的文章。

这是代码,以防链接被停用:

(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;
}());
不,

没有。jQuery http://api.jquery.com API 链接未列出任何打印机方法。抱歉,您不走运地尝试通过jQuery访问Mac和Windows打印机队列。队列是操作系统的一部分,而不是Web浏览器(操作系统应用程序)。因此,除非您使用的是 C 或 C++ 或 Java,否则无法构建从打印机队列到多个浏览器的事件桥。

不仅如此,Microsoft和苹果还必须支持多家第三方公司,如谷歌。例如,当他们拥有自己的网络浏览器时,他们不太可能这样做。分别是IE和Safari。免费网络浏览器的工作方式是,它们试图将默认流量路由到他们的搜索引擎中,以便他们可以提供广告并从广告收入中获利。Microsoft希望通过从Bing(默认IE搜索引擎)投放广告来将钱存入他们的银行账户,而不是进入谷歌的口袋。

因此,我们不太可能很快看到用于打印的跨浏览器jQuery解决方案的OS API。他们不会仅仅因为它使Web开发人员的生活更轻松而制作该功能。他们只想让这个功能可用,如果他们能找到一种方法从中赚取数百万美元。

$(document).ready(function () {
var delays='';
        $('#PrintInput').on('keyup', function () {
        clearTimeout(delays); 
        delays = setTimeout(function () {
          // do something when printing stop after 5 sec.
        },5000);
        });
});