捕获(不同)打印/取消打印按钮事件(单击)

时间:2015-06-16 08:52:58

标签: javascript events button printing click

如何从打印页面仅捕获取消事件?

我有一个页面,按一下按钮,你打开了一个新的标签,打印加载,如果你点击取消(不打印),我必须调用一个方法。打印相同。

如果要打印想要执行PrintSuccesfully(),如果取消打印我想执行PrintCancelled()。

我打开新标签的代码:

var windowObject = window.open('', '_blank');
windowObject.document.write(generatePrintHTMLBody(scope));
windowObject.document.close();
windowObject.focus();
windowObject.print();
windowObject.close();

我查看了onbeforeprint和onafterprint,但两者都是用matchMedia,CTRL + P事件或我的代码执行打印/取消按钮点击。

我测试的代码包含在找到here的generatePrintHTMLBody(范围)中:

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

1 个答案:

答案 0 :(得分:1)

经过大量研究后,您似乎无法做到这一点......每个浏览器上的按钮行为不同,或者它具有相同的签名,因此不存在分辨率。