我使用window.open函数用Javascript代码创建了一个辅助浏览器窗口,并用一些HTML内容以编程方式填充它。它适用于我的应用程序支持的所有浏览器,除了一个:Mac上的Safari。事实上,窗口本身是可以的,但打印命令被禁用。有人知道为什么吗?我应该提到,显示这个窗口的主要原因是允许用户打印一些数据。我想我可以在页面中实现"打印"按钮,但我不想这样做(它可能也不起作用,但我还没有尝试过)。
以下是我用来创建HTML内容的代码的简化示例:
var pp = window.open("", "_blank");
pp.document.writeln("<html>");
pp.document.writeln("<head>");
pp.document.writeln("<title>");
pp.document.writeln("Hello");
pp.document.writeln("</title>");
pp.document.writeln("</head>");
pp.document.writeln("<body>");
pp.document.writeln("The body");
pp.document.writeln("</html>");
pp.document.close();
我尝试了该代码的变体,但没有成功。我的测试是在Mac OS X 10.6.8上使用Safari 5.1完成的。欢迎任何帮助!
让窗口自己打印:
在</html>
之前添加:
pp.document.writeln("<script type='text/javascript'>window.print()</script>");