window.print()导致页面加载停滞

今天做了一个页面打印功能的玩意

需求:打印后数据按钮被隐藏,

思路

1,数据库添加个按钮状态字段 printState

2,在action中,将该页面带出来的方法里写上request.setparam("data",数据库查出来的数据);方式

3.在页面上,按钮外面加个判断  <c:if test="${data.printState!=1}"     1是打印后状态   0是打印前状态


印上我这部分的代码


var input_qymc=$('#qymc').val();
if(${dt.printState!=1}){
  if(confirm("确定打印后,数据将不能再保存")){
/* 判断是否为空,判断数据库中是否有值 */
 if(qymc==undefined||qymc==""||qymc==null||qymc!=input_qymc||zs!=input_zs||scztlxr!=input_scztlxr||scztlxdh!=input_scztlxdh||qrr!=input_qrr||qrrlxdh!=input_qrrlxdh||fr!=input_fr||frlxdh!=input_frlxdh){
alert("企业配置未保存,无法打印");
alert("1");
}else{
alert("2");
var id="${id}";
window.open("dzdt!printPage.action?id="+id);     //该方法再跳转到打印页面
        refesh();
}
  }


扫描二维码关注公众号,回复: 3265509 查看本文章


打印页面js

$(function() {
setTimeout(function(){
window.print();
},500);
});


结果发现打印按钮有时有有时无,也就是说它的refesh()方法,偶尔被读到而已


发现

print()是将页面停滞执行的

所以我们将print()方法延迟到refesh();方法后执行


所以将settimeout时间调到一秒钟就ok了

打印页面js

$(function() {
setTimeout(function(){
window.print();
},1000);
});



猜你喜欢

转载自blog.csdn.net/IT_COOKIE_SAM/article/details/77433567