可以在javascript中取消打印

时间:2015-03-09 08:06:54

标签: javascript jquery iframe

我正在使用此处的代码:Detecting browser print event来检测用户是否要打印页面。到目前为止,它按预期工作。

在" afterPrint" -function中,我调用了一个函数,该函数创建并附加一个iframe,其中包含另一个页面,该页面具有不同的,更加印刷友好的需要打印的布局:

    function printIframe (printsrc) {
        var iframe = $('iframe#print');
        if (iframe.length == 0)
            iframe = $('<iframe id="print" />').attr('src', printsrc).css("width", "0px").css("height", "0px").css("position", "absolute").css("left", "-9999px").appendTo($("body:first"));
        else
            iframe.attr('src', printsrc);
    };

在更适合打印机的页面上,我创建了我的布局,然后调用: window.print();

通过创建和附加iframe,用户可以在浏览器中停留在页面上,但打印布局不同。

似乎让打印机友好页面加载的唯一方法是取消打印对话框中的打印,然后触发afterPrint功能。是否有可能在javascript中取消用户的打印对话框?

感谢,

托马斯

1 个答案:

答案 0 :(得分:3)

不能使用Javascript取消打印事件。

阅读本文:[MDN, beforeprint - Cancelable:NO]

另见fiddle

var beforePrint = function() {
        console.log('Functionality to run before printing.');
        alert('cancelable : '+event.cancelable)
    };