问题描述
- 循环调用window.print打印,想只在第一次显示弹窗,后面的弹窗均不显示 5C
- 使用ajax查询数据,赋值给隐藏的页面,然后调用print()进行打印
不能用插件var i = 0; function printmore() { var orderRow = $('#dg').datagrid(""getSelections""); var len = orderRow.length; if(i == len) { return; } $.ajax({ url : ""${pageContext.request.contextPath}/printController/printtransmore?id="" + orderRow[i].id type : ""post"" success : function(data) { $(""#transNo"").html(""运单号:"" + data.first.transportNo); $(""#fromcompany"").html( data.first.fromcompanyname + ""<br/><br/>"" + data.first.fromprovince + data.first.fromcity + data.first.fromarea + data.first.fromcompanyaddress); $(""#tocompany"").html( data.first.tocompanyname + ""<br/><br/>"" + data.first.toprovince + data.first.tocity + data.first.toarea + data.first.tocompanyaddress); $(""#fromcontact"").html(联系人:"" + data.first.fromcompanycontact + "" 电话:"" + data.first.fromcompanyphoneno); $(""#tocontact"").html(联系人:"" + data.first.tocompanycontact + "" 电话:"" + data.first.tocompanyphoneno); $(""#pusername"").html(data.trans.pagkageUserName); $(""#money"").html(""运费:""+data.trans.money); $(""#insurance"").html(""其他费用:"" + data.trans.insurance); $(""#payname"").html(""付款方式:"" + data.trans.payname); for (var a = 0; a < data.list.length; a++) { $(""#boxno"").html(data.list[a].boxNo); $(""#typename"").html(data.list[a].typeName); } $(""#wcount"").html(""总重量:"" + data.trans.weightCount); $(""#bcount"").html(""总件数:"" + data.trans.boxCount+""件""); printit('div1'); i = i + 1; printmore(); } }); } function printit(MyDiv) { //var newstr = document.all.item(myDiv).innerHTML; var newstr = document.getElementById(MyDiv).innerHTML; //alert(newstr); var oldstr = document.body.innerHTML; document.getElementById('printiframe').contentWindow.document.body.innerHTML = newstr; document.getElementById('printiframe').contentWindow.window.print(); document.getElementById('printiframe').contentWindow.document.body.innerHTML = oldstr; }
解决方案
必须先显示出要打印的页面,然后才能打印,什么叫不显示?
解决方案二:
这个设置是系统的,你网页上打印也会跳出来的,这本身就是一些需要用户设置或确认的信息,所以一般也是不隐藏这个对话框
时间: 2024-12-22 16:29:25