我有一些HTML内容和图像,并在按钮点击打印页面。当我第一次打印时,打印预览页面为空,第二次打印正常。请帮助解释为什么它不是第一次打印页面
图像源是base-64格式。因此,由于内容较大,我无法添加代码段,请查看演示链接。
<input type="button" id="printImage" onclick=printImage() value="print" />
function printImage() {
var htmlContent = "The html code in stack-overflow exceeded. So please check with demo link for html content";
var win = window.open();
win.document.write(htmlContent);
win.document.close();
win.focus();
win.print();
win.close();
}
任何人都可以帮助我......
答案 0 :(得分:3)
win.document.write(htmlContent);
win.document.close();
win.focus();
setTimeout(function(){win.print();win.close();}, 10);
答案 1 :(得分:0)
尝试一下,
更改为
var win = window.open('', '', 'toolbar=0');
win.document.write(htmlContent);
win.document.onload = function () {
win.document.close();
win.focus();
win.print();
win.close();
};
这将起作用,在加载时将确保在执行下一个项目之前加载页面。
答案 2 :(得分:0)
var win = window.open('', '', 'toolbar=0');
win.document.write(htmlContent);
win.document.close();
win.focus();
setTimeout(function () {
win.print();},50);
window.close();
}
这将在打印执行前等待50毫秒。所以你的base64图像可以在html上绑定......(TESTED)