JS实现页面打印。本来使用想使用想使用jquery.PrintArea.js。但不符合我的要求。我要定制生成的内容。id之类都是不预先存在的。WebBrowser实现有限制,所以自己构建了。
window.printFrame = printFrame;
function printFrame(frame) {
var writeDoc;
var printWindow;
printWindow = new Popup();
writeDoc = printWindow.doc;
writeDoc.open();
writeDoc.write(frame.outerHTML);
writeDoc.close();
printWindow.focus();
printWindow.print();
printWindow.close();
}
function Popup(){
var windowAttr = "location=yes,statusbar=no,directories=no,menubar=no,titlebar=no,toolbar=no,dependent=no";
windowAttr += ",width=" + screen.width + ",height=" + screen.height;
windowAttr += ",resizable=yes,screenX=" + 0 + ",screenY=" + 0 + ",personalbar=no,scrollbars=no";
var newWin = window.open( "", "_blank", windowAttr );
newWin.doc = newWin.document;
return newWin;
}
/*
* WebBrowser实现,IE9报错
*
function printFrame() //预览函数
{
document.all("receiptFrame").style.display="none"; //打印之前先隐藏不想打印输出的元素(此例中隐藏“打印”和“打印预览”两个按钮)
var OLECMDID = 7;
var PROMPT = 1;
document.all.WebBrowser.ExecWB(OLECMDID,PROMPT);
document.all("receiptFrame").style.display="";//打印之后将该元素显示出来(显示出“打印”和“打印预览”两个按钮,方便别人下次打印)
}
function printTure() //打印函数
{
document.all("receiptFrame").style.display="none";//同上
window.print();
document.all("receiptFrame").style.display="";
}
*/