今天做了一个页面打印功能的玩意
需求:打印后数据按钮被隐藏,
思路
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();
}
}
打印页面js
$(function() {
setTimeout(function(){
window.print();
},500);
});
结果发现打印按钮有时有有时无,也就是说它的refesh()方法,偶尔被读到而已
发现
print()是将页面停滞执行的
所以我们将print()方法延迟到refesh();方法后执行
所以将settimeout时间调到一秒钟就ok了
打印页面js
$(function() {
setTimeout(function(){
window.print();
},1000);
});