我正在尝试通过将打印样式表应用到屏幕样式表来显示打印对话框之前的打印样式页面的预览。
这不起作用:
$('link[media*="screen"]').attr("href",url+"css/print/default.css");
window.print();
但是在print()之前有一个alert(),它可以工作:
$('link[media*="screen"]').attr("href",url+"css/print/default.css");
alert("Ok?");
window.print();
任何提示?
答案 0 :(得分:2)
此函数延迟执行window.print
几秒钟(delay
参数,默认约5秒):
function doPrint(delay){
delay = delay || 5; //default to 5 seconds
$('link[media*="screen"]').attr("href",url+"css/print/default.css");
setTimeout(function(){window.print();},delay*1000);
}
您也可以在打印对话框之后恢复原始css,将$('link[media*="screen"]').attr("href",url+"css/print/default.css");
的反向放入从setTimeout
调用的函数中。
答案 1 :(得分:0)
在您想要显示打印对话框之前,请不要调用window.print()。在页面上添加另一个按钮,用户可以按下该按钮打开打印对话框(默认情况下,此按钮可能会隐藏,显示预览时显示,但不要忘记在打印时再次隐藏它!)。
答案 2 :(得分:0)
加载样式表需要时间。如果没有警报,则在足够的时间过去之前调用print
来加载样式表。
任何提示?
浏览器内置了打印和打印预览功能。避免车轮改造。