是否可以在浏览器中使用带有JavaScript的打印机打印某些内容?从frontend javascript打印?
我想打印收据编号,所以如果可能的话,什么是最快的打印机,所以当用户点击一个按钮时,它会打印出来,例如。 “1234”在一张小纸上。
谢谢
是否可以在浏览器中使用带有JavaScript的打印机打印某些内容?从frontend javascript打印?
我想打印收据编号,所以如果可能的话,什么是最快的打印机,所以当用户点击一个按钮时,它会打印出来,例如。 “1234”在一张小纸上。
谢谢
您无法直接从Javascript访问打印机,但可以拨打window.print()
启动标准浏览器打印行为。使用这个,你可以尝试两种技术来实现你想要的功能:
在调用window.print()
之前注入一个动态打印样式表,它只显示包含要打印文本的元素。您需要小心清理以前的任何打印样式表。或者事实上,您可以只使用元素<div id="printable">
这是您的打印样式表中唯一可见的元素,并插入要打印的任何文本。 (请注意,如果这是用户可能实际想要打印的网站)
也可以直接在iframe窗口中调用print()
,您可以使用所需文本填充该窗口。例如:
var iframe = document.createElement('iframe');
iframe.onload = function() {
var doc = iframe.contentDocument ? iframe.contentDocument : iframe.contentWindow.document;
doc.getElementsByTagName('body')[0].innerHTML = "<p>1234</p>";
iframe.contentWindow.focus(); // This is key, the iframe must have focus first
iframe.contentWindow.print();
}
document.getElementsByTagName('body')[0].appendChild(iframe);
您无法从浏览器中访问打印设置。
这是出于安全考虑,否则世界各地的打印机都会打印不停。
关于在致电window.print();
中的javascript打印,您可以做的唯一一件事。