首次打印在Chrome浏览器中无效

时间:2017-04-19 10:04:09

标签: javascript jquery html printing

我有一些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();
}

sample demo link

任何人都可以帮助我......

3 个答案:

答案 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)