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>