我有这样的尝试是把一些内容到一个弹出窗口,然后JavaScript代码连接到打印:等待HTML调用window.print()之前写窗口
$(".print_friendly_popup").click(function() {
var target = $(this).data('print-target');
var left = (screen.width/2)-(500/2);
var top = (screen.height/2)-(500/2);
var win = window.open("", "test", "width=500,height=500 top=" + top + ", left=" + left);
if(target == 'review') {
win.document.write($('#print_friendly_review').html());
} else if(target == 'essay') {
win.document.write($('#print_friendly_essay').html());
}
win.print();
win.close();
});
的问题是有时调用win.document.write需要很长时间,并且窗口尝试打印一个空白屏幕。在打印前如何等待window.document写入?
+0
试过'setTimeout()'? –
+0
1.“document.write”不是很好的“最佳实践”,我想我会变成一个简单的HTML追加(或者将HTML作为字符串分配给正确的元素 - 更快) - 比使用“onLoad “事件,看到所有的内容已被加载,并做你的”打印“ 2.我会去一个方法,可以设置我的”打印样式“通过CSS媒体:”@media print“ –
+0
使用文档没有任何问题.write用于构建弹出窗口内容。 –