是否有一种方法来监听正在使用javascript发送到打印机的页面
Is there a way to listen for a page being sent to the printer using javascript?
我试图创建一个javascript函数,其中内容在window.print
启动之前被切换出来,然后在页面发送到打印机后将内容切换回来。我尝试过使用document.body.onfocus
,但是一些打印方法(例如打印到PDF)在页面实际打印之前将焦点返回到body
,从而将预期的内容替换为原始内容。
这是我目前拥有的,以及我认为我需要的监听器的位置:
function printNewContent() {
var title = document.getElementById("OriginalTitle");
var secondtext = document.getElementById("TextBlock2");
var copy = document.getElementById("StandardCopy");
var origtitle = title.innerHTML;
var origcopy = copy.innerHTML;
var newcopy = document.getElementById("NewCopy").innerHTML;
title.innerHTML = "New Title";
copy.innerHTML = newcopy;
secondtext.className = "displayNone";
window.print();
//Listen for page to be sent to the printer
title.innerHTML = origtitle;
copy.innerHTML = origcopy;
secondtext.className = "PrintOnly SecondTxt";
}
我会将延迟与onfocus
方法结合使用,但这不是一个万无一失的方法,我正在寻找尽可能稳定和一致的东西。任何建议都将非常感谢。谢谢!
另一种方法是使用CSS媒体查询来显示/隐藏网站上正在打印的内容。这比在打印之前尝试操作DOM并试图将其更改回来要好得多。
例如,假设你想让你的网页在屏幕上显示一个元素,但当它被打印出来时,你想隐藏它,并显示其他东西。您需要提前呈现屏幕版本和打印版本的HTML。
标记:
<div class="screen">
This is the stuff normal users will see.
</div>
<div class="print">
This is the stuff that will be printed.
</div>
CSS: .print { display: none; }
@media print
{
.print { display: block; }
.screen { display: none; }
}
IE早就有onafterprint
了。
在HTML5中,onafterprint也成为非ie浏览器的一个事件。关于onafterprint
的详细信息,请参见MDC和W3C规范
我认为有onafterprint
事件,但这只适用于internet explorer。
你应该为不同的屏幕使用不同的样式css:
打印
相关文章:
- javascript可以获取或设置打印机信息
- 通过JavaScript与打印机通信
- 使用POS打印机打印Javascript收据
- 删除消息选择打印机并使用javascript自动打印文档
- 如何在打印机不可用时测试JavaScript的window.print函数
- 检测打印机's CSS或JavaScript中的页面大小
- 在内容进入打印机之前关闭窗口(JavaScript)
- 通过javascript选择特定的打印机
- 通过JavaScript检索所有已安装打印机的列表
- 通过Javascript - acrobatdc发送文件到网络打印机
- PHP/JAVASCRIPT:是否可以在打印机中只打印选定的表?
- 如何在IE11中从javascript发送生成的图像到打印机
- 使用Javascript在html中打印到默认打印机,而不打开打印机确认对话框
- 我可以让JavaScript选择要使用的打印机吗
- Javascript不能与java中的打印机一起工作
- 我们可以使用javascript在PC上安装打印机的详细信息
- 如何使用javascript在DymoLabel打印机中打印
- 如何通过JavaScript访问打印机SNMP数据
- 向打印机发送一个javascript变量,其中包含HTML代码
- 我可以为Javascript.window.print设置一个特定的打印机吗