Когда вы используете window.print()
, печатается текущее окно.Таким образом, вы можете открыть iframe
, а затем вызвать window.print()
внутри него.
Возможно, вам не удастся скрыть iframe
, задав ему position: absolute; left: -9999px
.
JavaScript
При условии, что эти ссылки совпадают по протоколу, домену и хосту .
var printInvoice = function(url) {
var iframe = document.createElement('iframe'),
iframeDocument;
iframe.style.postion = 'absolute';
iframe.style.left = '-9999px';
iframe.src = url;
document.body.appendChild(iframe);
if ('contentWindow' in iframe) {
iframeDocument = iframe.contentWindow;
} else {
iframeDocument = iframe.contentDocument;
}
var script = iframeDocument.createElement('script');
script.type = 'text/javascript';
script.innerHTML = 'window.print();';
iframeDocument.getElementsByTagName('head')[0].appendChild(script);
}
Не проверено, но оно должно работать:)