在JavaScript中取消打印是否可能?

3
我使用了这里的代码:检测浏览器打印事件 来检测用户是否要打印页面。目前为止它已经按预期工作。
在 "afterPrint" 函数中,我调用一个函数来创建并添加一个 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 中取消用户的打印对话框?
谢谢, Thomas
1个回答

6

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

请参阅:[MDN, beforeprint - Cancelable:NO]

还可以查看演示

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

这不是我所期望的答案,但答案仍然是正确的 :-) 谢谢 - ThomasD

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接