有时,你需要通过 window.open() 来开启打印页面,打印结束后,让它关闭,但这里有一个问题,你调用控件的打印预览功能后,那个弹出页面无法再用 window.close()来关闭,怎么办?这里提供一个方法,就是将一个打印页面,嵌在弹出的那个页面的iframe中,如下所示:
closewindow-main.htm : 主控页面,
复制内容到剪贴板
代码:
<input type="button" value="打印" onClick="window.open('closewindow-popup.htm')">closewindow-popup.htm : 被打开的页,里面嵌iframe,指向真正打印的页面
复制内容到剪贴板
代码:
<iframe src="closewindow-papers.htm"></iframe>closewindow-papers.htm: 有打印按钮的页面,此处设置done回调,使控件打印结束后,自动关闭弹出页面
复制内容到剪贴板
代码:
<html>
<head>
<script type="text/javascript" src="jatoolsPrinter.js"></script>
<script type="text/javascript">
 function doprint(how) {
 //打印文档对象
 var myDoc = {
 documents : document,
 copyrights : '杰创软件拥有版权  www.jatools.com'
 };
 myDoc.done = function() {
 closewindow();
 }
 var jatoolsPrinter = getJatoolsPrinter();
 if (how.indexOf('打印预览') > -1)
 jatoolsPrinter.printPreview(myDoc, false); // 打印前弹出打印设置对话框                
 else
 jatoolsPrinter.print(myDoc, false); // 不弹出对话框打印
 }
 function closewindow() {
 parent.close();
 }
</script>
</head>
<body>
 <div id='page1' class='pagestyle'>文档第一页</div>
 <div id='page2' class='pagestyle'>文档第二页</div>
 <input type="button" value="打印预览" onClick="doprint('打印预览')">
 <input type="button" value="打印后关闭窗口" onClick="doprint('打印')">
 <input type="button" value="关闭窗口" onClick="closewindow()">
 <!-- 插入打印控件 -->
 <object id="ojatoolsPrinter"
 codebase="jatoolsPrinter.cab#version=5,4,0,0"
 classid="clsid:B43D3361-D075-4BE2-87FE-057188254255" width="0"
 height="0">
 <embed id="ejatoolsPrinter" type="application/x-vnd.jatoolsPrinter"
 pluginspage="jatoolsPrinter.exe" width="0" height="0" />
</body>
</html>