(这是通过Grease / Tampermonkey)。
以下是使用Chrome测试版浏览器的自助服务终端的打印功能:
$("#autoCheckOrder button").click ( function () {
var newWin = window.open ("");
newWin.document.write ( "<!DOCTYPE html>" );
newWin.document.write( "<html>" );
newWin.document.write( "<head>" );
newWin.document.write( "<title>" );
newWin.document.write( "</title>" );
newWin.document.write( "<style>" );
newWin.document.write( "@media print { " );
newWin.document.write( "body { " );
newWin.document.write( "background-color: white;" );
newWin.document.write( "width: 55mm;" );
newWin.document.write( "position: absolute;" );
newWin.document.write( "top: 0;" );
newWin.document.write( "left: 0;" );
newWin.document.write( "padding: 0px;" );
newWin.document.write( "font-size: 14px;" );
newWin.document.write( "line-height: 18px;" );
newWin.document.write( "}" );
newWin.document.write( "}" );
newWin.document.write( "</style>" );
newWin.document.write( "</head>" );
newWin.document.write( "<body>" );
newWin.document.write ( loanHTML );
newWin.document.write( "</body>" );
newWin.document.write( "</html>" );
if(newWin.print()) {
newWin.close();
} else {
newWin.close();
}
});
它从列出所有项目的页面抓取一个表格,然后创建一个 '收据'。然后打印收据。这完美地工作了一段时间,现在它只打印第一个项目。
我尝试了以下内容,绝对没有结果:
疯狂的是,它曾用于完美地打印所有物品,现在却没有。我甚至从备份中重新安装了脚本,以确保。
不知道从哪里开始。所有内容都显示在打印预览中,但只打印第一个项目。 “页眉和页脚”设置只会让事情变得更糟,而不是更好。
更新
我更改了发送到打印机的HTML,但它确实有效。仍然不确定它是否完全有效,但它正在打印。如果它停止打印,我会知道要解决什么问题。感谢您的投入!
答案 0 :(得分:1)
我能看到的唯一可信的解释是你的loanHTML变量是空的或未定义的。
演示:http://jsfiddle.net/waitinforatrain/bMzUt/2/
注释掉var loanHTML
行并再次运行,你会看到我的意思。