开发者

Printing contents of another page

In the following link

<a href=\"#\" onclick=javascript:print(\"\") style=\"color:blue;\">Print</a>"
<script&g开发者_如何学Ct;
 function print()
 {
      //How to print the contents of another page
 }


I know it´s an old question, but you can do it like this:

function printExternal(url) {
    var printWindow = window.open( url, 'Print', 'left=200, top=200, width=950, height=500, toolbar=0, resizable=0');
    printWindow.addEventListener('load', function(){
        printWindow.print();
        printWindow.close();
    }, true);
}

Tested in Firefox and Chrome. IE9 doesn´t work.


Edit 2020-04-03

No longer work on Chrome, code adapted from Coder answer here:

function printExternal(url) {
    var printWindow = window.open( url, 'Print', 'left=200, top=200, width=950, height=500, toolbar=0, resizable=0');

    printWindow.addEventListener('load', function() {
        if (Boolean(printWindow.chrome)) {
            printWindow.print();
            setTimeout(function(){
                printWindow.close();
            }, 500);
        } else {
            printWindow.print();
            printWindow.close();
        }
    }, true);
}


If you already have an external page( letterprint.php ), put that page in a hidden iframe and print the content of iframe by using onclick attribute in a button.

<iframe src="letterprint.php" style="display:none;" name="frame"></iframe>

<input type="button" onclick="frames['frame'].print()" value="printletter">


An alternative is to link to the page with a get variable and then call the print function.

For your link -

<a href="print-page.php?print=1">Print other page</a>

Then on your print page (or all pages)

<script type="text/javascript">
<? if(isset($_GET['print'])) { ?>
window.print();
<? } ?>
</script>


You can print external page by creating window object of another page and calling print method of that page.
URL can be passed in argument or can be hardcoded in function depends on use case

function print(url) {
    var printWindow = window.open( url);
    printWindow.print();
};


Think about the security/embarrassment issues that would exist if this was possible. Thankfully, browsers won't allow you to do that.

The closest you can get is fetching the page via AJAX, replacing the current DOM with the new page, and printing with JS's normal print() method.


I think you can print the contents of the current page not external page.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜