打印另一页的内容

时间:2010-04-05 11:19:39

标签: javascript html javascript-events printing

在以下链接

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

6 个答案:

答案 0 :(得分:20)

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

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不起作用。

答案 1 :(得分:13)

如果您已有外部网页(letterprint.php),请将该网页放在隐藏的iframe中,然后使用按钮中的onclick属性打印iframe的内容。

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

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

答案 2 :(得分:9)

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

为您的链接 -

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

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

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

答案 3 :(得分:0)

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

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

答案 4 :(得分:-1)

考虑可能存在的安全/尴尬问题。值得庆幸的是,浏览器不允许你这样做。

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

答案 5 :(得分:-8)