0条评论
还没有人评论过~
最近测试老是提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小白,如果有问题,欢迎指正。