onclick打印目标网址

时间:2011-04-11 23:12:27

标签: javascript printing

我的发票页面上有一个链接。

该链接指向打印发票的打印友好网址。

问题是,我想“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>

基本上,我想点击链接,打印目标网址。不离开页面。请提出任何建议

2 个答案:

答案 0 :(得分:4)

使用window.print()时,会打印当前窗口。因此,您可以打开iframe,然后在其中调用window.print()

您可以通过提供iframe来隐藏position: absolute; left: -9999px

的JavaScript

假设这些链接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查看器中打印出来。自动做这种事情只是令人讨厌,无论如何你都找不到合适的方法。