我使用了这里的代码:检测浏览器打印事件 来检测用户是否要打印页面。目前为止它已经按预期工作。
在 "afterPrint" 函数中,我调用一个函数来创建并添加一个 iframe,其中包含另一页,其布局不同,并且更适合打印所需内容:
在更适合打印的页面上,我创建了布局,然后调用:
似乎唯一的方法是取消打印对话框中的打印,这将触发 afterPrint 函数,从而加载适合打印的页面。是否有可能在 JavaScript 中取消用户的打印对话框?
谢谢, Thomas
在 "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