取消或保存打印对话框后,当前 window 未关闭
After cancel or save print dialog the current window was not close
当我打印数据时,它会打开新的 windows,其中包含 HTML 页面的所有相应数据,并在很短的时间内打开打印对话框,但是当我取消该对话框或关闭对话框时那个时候电流window没有关闭
请建议如何在关闭打印对话框后关闭对话框window。
这是我打印数据的代码:
$.ajax({
url: "project/printProjectData?" + this.searchdata,
cache: false,
dataType: 'html',
contentType: 'application\'html',
success: function(html){
var w = window.open('');
w.document.open();
w.document.write('<html><head>');
w.document.write('</head><body onload="window.print()">');
w.document.write(html);
w.document.write('</body></html>');
w.document.close();
CheckWindowState();
}
});
function CheckWindowState() {
if(document.readyState === "complete") {
window.close();
} else {
setTimeout("CheckWindowState()", 2000)
}
}
但新打开的还是没有关闭window。
// 只需将 w 对象传递给您的函数,这样它就可以使用该对象
关闭 window
$.ajax({
url: "project/printProjectData?" + this.searchdata,
cache: false,
dataType: 'html',
contentType: 'application\'html',
success: function(html){
var w = window.open('');
w.document.open();
w.document.write('<html><head>');
w.document.write('</head><body>');
w.document.write(html);
w.document.write('</body></html>');
w.print();
CheckWindowState(w);
}
});
function CheckWindowState(window) {
if(document.readyState === "complete") {
window.close();
} else {
setTimeout("CheckWindowState()", 2000)
}
}
你可以使用setTimeout,如果你想等待n秒然后关闭
var delayInMilliseconds = 1000; //1 second
setTimeout(function() {
//your code to be executed after 1 second
}, delayInMilliseconds);
我找到了在打印或取消后关闭加载的 window 的方法。
因为我在 onload 事件之后打印数据,所以我们必须在同一个 onload 事件上关闭 window。
printProjectData: function () {
$.ajax({
url: "project/printProjectData?" + this.searchdata,
cache: false,
dataType: 'html',
contentType: 'application\'html',
success: function(html){
var w = window.open();
w.document.write('<html><head>');
w.document.write('</head><body onload="window.print(); window.close();">');
w.document.write(html);
w.document.write('</body></html>');
w.document.close();
}
});
},
谢谢大家。:)
当我打印数据时,它会打开新的 windows,其中包含 HTML 页面的所有相应数据,并在很短的时间内打开打印对话框,但是当我取消该对话框或关闭对话框时那个时候电流window没有关闭
请建议如何在关闭打印对话框后关闭对话框window。
这是我打印数据的代码:
$.ajax({
url: "project/printProjectData?" + this.searchdata,
cache: false,
dataType: 'html',
contentType: 'application\'html',
success: function(html){
var w = window.open('');
w.document.open();
w.document.write('<html><head>');
w.document.write('</head><body onload="window.print()">');
w.document.write(html);
w.document.write('</body></html>');
w.document.close();
CheckWindowState();
}
});
function CheckWindowState() {
if(document.readyState === "complete") {
window.close();
} else {
setTimeout("CheckWindowState()", 2000)
}
}
但新打开的还是没有关闭window。
// 只需将 w 对象传递给您的函数,这样它就可以使用该对象
关闭 window$.ajax({
url: "project/printProjectData?" + this.searchdata,
cache: false,
dataType: 'html',
contentType: 'application\'html',
success: function(html){
var w = window.open('');
w.document.open();
w.document.write('<html><head>');
w.document.write('</head><body>');
w.document.write(html);
w.document.write('</body></html>');
w.print();
CheckWindowState(w);
}
});
function CheckWindowState(window) {
if(document.readyState === "complete") {
window.close();
} else {
setTimeout("CheckWindowState()", 2000)
}
}
你可以使用setTimeout,如果你想等待n秒然后关闭
var delayInMilliseconds = 1000; //1 second
setTimeout(function() {
//your code to be executed after 1 second
}, delayInMilliseconds);
我找到了在打印或取消后关闭加载的 window 的方法。
因为我在 onload 事件之后打印数据,所以我们必须在同一个 onload 事件上关闭 window。
printProjectData: function () {
$.ajax({
url: "project/printProjectData?" + this.searchdata,
cache: false,
dataType: 'html',
contentType: 'application\'html',
success: function(html){
var w = window.open();
w.document.write('<html><head>');
w.document.write('</head><body onload="window.print(); window.close();">');
w.document.write(html);
w.document.write('</body></html>');
w.document.close();
}
});
},
谢谢大家。:)