繁体   English   中英

打印另一页的内容

[英]Printing contents of another page

在以下链接中

<a href=\"#\" onclick=javascript:print(\"\") style=\"color:blue;\">Print</a>"
<script>
 function print()
 {
      //How to print the contents of another page
 }

我知道这是一个老问题,但你可以这样做:

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);
}

在 Firefox 和 Chrome 中测试。 IE9 不工作。


编辑 2020-04-03

不再在 Chrome 上工作,代码改编自Coder 在这里回答

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);
}

如果您已经有一个外部页面( letterprint.php ),则将该页面放入隐藏的 iframe 中,并使用按钮中的 onclick 属性打印 iframe 的内容。

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

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

另一种方法是使用 get 变量链接到页面,然后调用打印函数。

对于您的链接 -

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

然后在您的打印页面(或所有页面)

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

您可以通过创建另一个页面的窗口对象并调用该页面的打印方法来打印外部页面。
URL 可以在参数中传递,也可以在函数中硬编码,具体取决于用例

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

想想如果可能的话会存在的安全/尴尬问题。 谢天谢地,浏览器不允许你这样做。

最接近的是通过 AJAX 获取页面,用新页面替换当前 DOM,并使用 JS 的普通 print() 方法打印。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM