Javascript 使用jquery打印另一页

Javascript 使用jquery打印另一页,javascript,jquery,printing,Javascript,Jquery,Printing,我有两个功能来打印元素和打印页面 function printPage(page,redirect,dontPrint=false) { if($('.printThis').length == 0) { $('body').append('<div class="printThis hide"></div>'); } $('.printThis').load(page,function(){ printCo

我有两个功能来打印
元素
和打印
页面

function printPage(page,redirect,dontPrint=false)
{
    if($('.printThis').length == 0)
    {
        $('body').append('<div class="printThis hide"></div>');
    }
    $('.printThis').load(page,function(){
        printContent($('.printThis'),redirect,dontPrint);
        $('.printThis').remove();
    });
}

function printContent(div_id,redirect,dontPrint=false)
{
    var DocumentContainer = div_id.html();
    var html = '<html><head>'+
                   '<link href="'+tmpl+'assets/css/print.css" rel="stylesheet" type="text/css" />'+
                   '</head><body style="background:#ffffff;">'+
                   DocumentContainer+
                   '</body></html>';
    var WindowObject = window.open("", "PrintWindow",
    "width=750,height=650,top=50,left=50,toolbars=no,scrollbars=yes,status=no,resizable=yes");
    WindowObject.document.write(html);
    WindowObject.document.close();
    WindowObject.focus();
    setTimeout( function() {
        if(!dontPrint)
        {
            WindowObject.print();
            WindowObject.close();
        }
        if(redirect)
        window.location.assign(redirect);
    }, 50 );
}
函数打印页面(页面,重定向,dontPrint=false)
{
如果($('.printThis')。长度==0)
{
$('body')。追加('');
}
$('.printThis').load(第页,函数(){
printContent($('.printThis')、重定向、dontPrint);
$('.printThis').remove();
});
}
函数printContent(div_id,重定向,dontPrint=false)
{
var DocumentContainer=div_id.html();
var html=''+
''+
''+
文档容器+
'';
var WindowObject=window.open(“,”PrintWindow“,
“宽度=750,高度=650,顶部=50,左侧=50,工具栏=否,滚动条=是,状态=否,可调整大小=是”);
WindowObject.document.write(html);
WindowObject.document.close();
WindowObject.focus();
setTimeout(函数(){
如果(!dontPrint)
{
WindowObject.print();
WindowObject.close();
}
如果(重定向)
窗口.位置.分配(重定向);
}, 50 );
}
从任何一页开始,我都可以通过点击按钮来打印一页

<button class="btn btn-primary btn-xs" onclick="printPage('/myproject/prints/bill/sales/5','')">Print Bill</button>
打印账单
当用户第一次点击
按钮时
会弹出一个
空白页面
!!!! 只要他再按一下按钮,就可以了


你能帮忙吗?

好的,我发现了我的问题

这是我的页面完全加载的时间,所以我将延迟时间增加到700,效果很好
谢谢

要解决您的问题,您需要将此添加到要打印的HTML代码中:

<script>
    window.onload = function(){
        window.print();
    }
</script>
当您单击该链接时,它将打开
中的页面。由于您正在生成
的输出,因此可以将引用的javascript代码添加到输出中


这将为您节省大量工作,并尽可能保持兼容性。更不用说容易了

为什么这样?您只需将
window.onload=function(){window.print()}
添加到您的iframe中,它就可以工作了。避免像这样使用超时:用户有所有不同类型的连接。使用
onload
函数来完成您要查找的内容。如何将
onload
函数与
一起使用。load
,我正在调用另一个页面?和
无iframe
<a href="/myproject/prints/bill/sales/5" target="print" class="btn btn-primary btn-xs">Print Bill</button>
<iframe id="print" name="print" style="display:none;"></iframe>