我正在尝试将页面打印为弹出窗口。对于Mozilla和IE它的工作但在chrome上会出现一个弹出窗口,但它会打印"打印预览失败"。
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对我的脚本不满意。
答案 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(); }