是否可以在瀏覽器中使用帶有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打印,您可以做的唯一一件事。