2011-08-02 83 views
1

我有一个iframe:打印iframe中的内容与jQuery

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

我需要这个iframe中有风格 “显示:无;”所以它是无形的

现在,当有人点击通过PHP生成的链接:我希望它简单地改变IFRAME SRC和打印的内容是在iframe

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

,但我的代码是不工作:

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

所以这就是我想要的东西: - 用户点击链接 - 他点击 基于链接的iframe内容的变化 - iframe中的内容打印

回答

3

2个问题:

  1. 你也许需要等到页面加载
  2. 打印()是一种窗口对象的方法

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

谢谢医生:)工作过的魅力! – scarhand

0
  1. 什么是$('#printarea').focus();应该实现?据我所知.focus()作品与表格元素和链接...
  2. 什么是$('#printarea').print();?在jQuery中没有遇到过这个函数。如果你使用的是插件,它会提及哪一个。

因此,也许你就会有更多的运气:

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