我的发票页面上有一个链接。
该链接指向打印发票的打印友好网址。
问题是,我想“onclick”打印该URL的内容。 如果没有先打开目标网址,不确定这是否可行。是吗?
链接:(第一种方法不起作用,因为它打印当前的URL)
<li class="print"><a href="https://www.mysite.com.au/pdf/invoice_parse.html?id=<?=$r['invoice'];?>" onClick="window.print();return false">Print Invoice</a></li>
基本上,我想点击链接,打印目标网址。不离开页面。请提出任何建议
答案 0 :(得分:4)
使用window.print()
时,会打印当前窗口。因此,您可以打开iframe
,然后在其中调用window.print()
。
您可以通过提供iframe
来隐藏position: absolute; left: -9999px
。
假设这些链接match on protocol, domain and host。
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);
}
未经测试,但它应该有效:)
答案 1 :(得分:-1)
只需提供PDF链接,让您的用户从他们喜爱的PDF查看器中打印出来。自动做这种事情只是令人讨厌,无论如何你都找不到合适的方法。