用jquery打印iframe内容

时间:2011-08-02 00:30:39

标签: javascript jquery html css

我有一个iframe:

<iframe name="printarea" id="printarea" src="print.php" style="display: none;"></iframe>

我需要这个iframe的样式为“display:none;”所以它是不可见的

现在有人点击通过php生成的链接:

echo '<a href="#" onclick="print_receipt('.$row['id'].'); return false;"><img src="images/icon-print.png" alt="" /></a>';

我希望它只是更改iframe SRC并打印iframe中的内容,但我的代码根本不起作用:

function print_receipt (id)
{
    $('#printarea').attr('src', 'print.php?id='+id);
    $('#printarea').focus();
    $('#printarea').print();
}

所以这就是我想要的: - 用户点击链接 - iframe内容根据他点击的链接而变化 - iframe内容打印

2 个答案:

答案 0 :(得分:4)

2个问题:

  1. 您可能需要等到页面加载
  2. print()是一种窗口对象的方法

  3.    $('#printarea')
        .load(function(){this.contentWindow.print();$(this).unbind('load');})
         .attr('src', 'print.php?id='+id);
    

答案 1 :(得分:0)

  1. $('#printarea').focus();应该达到的目标是什么?据我所知.focus()使用表单元素和链接......
  2. 什么是$('#printarea').print();?没有在jQuery中遇到过这个函数。如果你正在使用插件,那将有助于提及哪一个。
  3. 所以也许你会有更多的运气:

    function print_receipt (id)
    {
        $('#printarea')
           .attr('src', 'print.php?id='+id)
           .css("display","block");
    }