chrome浏览器使用jqprint插件打印时偶尔空白页问题
程序员文章站
2022-06-15 10:15:34
最近测试老是提bug说是有50%的概率打印出空白页,之前我也一直发现偶尔会出现这个问题,只是一直没有发现原因。 今天终于下定决心找到问题所在。开始吧! 查看源码一行行debug,发现问题只可能出现在这一段。 这里应该是等待为了等待渲染完成,所以延迟了1秒加载打印。但是很多情况下会发现渲染时间超过1秒 ......
最近测试老是提bug说是有50%的概率打印出空白页,之前我也一直发现偶尔会出现这个问题,只是一直没有发现原因。
今天终于下定决心找到问题所在。开始吧!
查看源码一行行debug,发现问题只可能出现在这一段。
settimeout( function() { (opt.operasupport && $.browser.opera ? tab : $iframe[0].contentwindow).print(); if(tab){ tab.close(); } }, 1000);
这里应该是等待为了等待渲染完成,所以延迟了1秒加载打印。但是很多情况下会发现渲染时间超过1秒的情况,这种时候就会打印出空白页面。
查询网上的资料之后,想了个办法解决 了这个问题。
var printobj=opt.operasupport && $.browser.opera ? tab : $iframe[0].contentwindow; printobj.addeventlistener('load', function() { printobj.print(); if (tab) { tab.close(); } });
我是js小白,如果有问题,欢迎指正。