打印页面作为弹出窗口不适用于在Mozilla和IE上工作的chrome

时间:2015-10-17 16:11:08

标签: javascript jquery html google-chrome

我正在尝试将页面打印为弹出窗口。对于Mozilla和IE它的工作但在chrome上会出现一个弹出窗口,但它会打印"打印预览失败"。

Plunker demo

javascript的一部分是 -

function PrintElem(elem) {
    console.log($(elem).html())

     Popup($( elem).html());
}

function Popup(data)
{
    var printContent = data;
    var disp_setting="toolbar=no,location=no,directories=no,menubar=no, scrollbars=no,width=600, height=800"
    var myWindow = window.open("","",disp_setting);
    myWindow.document.write(printContent);

    myWindow.document.close();
    myWindow.focus();
    myWindow.print();
    myWindow.close();
    return true;
}

不确定为什么Chrome对我的脚本不满意。

3 个答案:

答案 0 :(得分:3)

setTimeout毫秒工作的500

function Popup(data)
{
  var printContent = data;
  var disp_setting="toolbar=no,location=no,directories=no,menubar=no, scrollbars=no,width=600, height=800";
  var myWindow = window.open("","",disp_setting);
  myWindow.document.open();
  myWindow.document.write(printContent);
  myWindow.document.close();
  myWindow.focus();
  setTimeout(function () {
    myWindow.print();
    myWindow.close();
  }, 500);
  return true;
}

答案 1 :(得分:2)

如果您使用的是JQuery,则可以使用$(document).ready(function () {});。看看这里:

$(function () {
  window.print();
  window.close();
});

答案 2 :(得分:0)

感谢A.Wolff的回答和VennilaSundarRajan提供有关问题的见解 - 我代表这里发帖。 真正的问题是时间逐页渲染。 用这个 -

myWindow.onload = function(){ this.print(); this.close(); }