打印对话框关闭后自动转到上一个 window
go to previous window automatically after printing dialog closes
我有一个页面,其中 html 元素驻留,最后通过 javascript 调用打印函数。
<script type="text/javascript">
$(document).ready(function(){
window.print();
window.history.back();
})
</script>
现在我有这段代码可以在打印后或单击取消时重定向用户。它在本地工作,但在实时服务器中它会立即转到上一页。
也许你应该尝试在新的 window 中打印?
像这样:
var myWindow=window.open('','','width=200,height=100');
myWindow.document.write("<p>This is 'myWindow'</p>");
myWindow.document.close();
myWindow.focus();
myWindow.print();
myWindow.close();
myWindow.history.back();
参考:JavaScript window.print() not working
您可以尝试使用 window.onafterprint
函数。
The afterprint event is raised after the user prints or aborts a print
dialog.
所以对于您的代码(并且仅适用于 FF 和 IE),我将尝试使用类似的东西:
<script type="text/javascript">
$(document).ready(function(){
window.print();
})
window.onafterprint = function() {
history.go(-1);
};
</script>
现在,对于 基于 Webkit 的浏览器 使用 matchMedia('print')...
像...
var mediaQueryList = window.matchMedia('print');
mediaQueryList.addListener(function(mql) {
if (mql.matches) {
console.log('onbeforeprint equivalent');
} else {
console.log('onafterprint equivalent');
}
});
来源:
WindowEventHandlers.onafterprint
Detecting Print Requests with JavaScript
onbeforeprint and onafterprint is not working in Chrome and IE?
使用它返回上一页
$(document).ready(function() {
window.print();
history.go(-1);
});
或:
$(document).ready(function() {
window.print();
history.back();
});
我有一个页面,其中 html 元素驻留,最后通过 javascript 调用打印函数。
<script type="text/javascript">
$(document).ready(function(){
window.print();
window.history.back();
})
</script>
现在我有这段代码可以在打印后或单击取消时重定向用户。它在本地工作,但在实时服务器中它会立即转到上一页。
也许你应该尝试在新的 window 中打印?
像这样:
var myWindow=window.open('','','width=200,height=100');
myWindow.document.write("<p>This is 'myWindow'</p>");
myWindow.document.close();
myWindow.focus();
myWindow.print();
myWindow.close();
myWindow.history.back();
参考:JavaScript window.print() not working
您可以尝试使用 window.onafterprint
函数。
The afterprint event is raised after the user prints or aborts a print dialog.
所以对于您的代码(并且仅适用于 FF 和 IE),我将尝试使用类似的东西:
<script type="text/javascript">
$(document).ready(function(){
window.print();
})
window.onafterprint = function() {
history.go(-1);
};
</script>
现在,对于 基于 Webkit 的浏览器 使用 matchMedia('print')...
像...
var mediaQueryList = window.matchMedia('print');
mediaQueryList.addListener(function(mql) {
if (mql.matches) {
console.log('onbeforeprint equivalent');
} else {
console.log('onafterprint equivalent');
}
});
来源:
WindowEventHandlers.onafterprint
Detecting Print Requests with JavaScript
onbeforeprint and onafterprint is not working in Chrome and IE?
使用它返回上一页
$(document).ready(function() {
window.print();
history.go(-1);
});
或:
$(document).ready(function() {
window.print();
history.back();
});