2010-04-05 26 views
3

在下面的代码,生成的HTML数据和打印从另一页

在a.html有这个代码,

  <div id="tableview"></div>//Data loaded dynamically 

     <input type="button" id="printbtn" onclick="print()"/>    
     <script> 
     function print() 
     { 
      var data=$('#tableview').html(); 
      dataobj.print(); 
      } 

在b.html

我需要打印.html没有打开它,但没有打开它将如何生成div中的数据,以及如何只打印这些数据b.html

谢谢..

回答

0
  1. 做一个Ajax调用b.htm

  2. 得到你想要的div的内容。

  3. 返回数据到一个隐藏的div在这个a.htm

  4. 让这一切都隐藏在该视图中,只有以前隐藏的div是可见的打印样式表。

  5. 调用打印功能

0

我觉得你可以做一个Ajax请求b.html获取内容,然后打印出来。

function contentprint() 
{ 
$.ajax({ 
      url : "b.html", 
      success : function (data) { 
      var data1=data; 
      data1.print(); 
} 
}); 
} 

HTH

+0

是的,这是正确的。 只是url位应该是“b.htm#mycontent” – XGreen 2010-04-05 16:27:34

3

更新:这个答案是假设没有回传应该发生根据你的问题。 (No Ajax)

如果每页只有一个打印视图,则可以将media = print过滤器应用到页面上。最初加载两个视图并仅在屏幕上显示屏幕视图。

<Style href="print.css" media="print" /> 

您可以设置所有的屏幕显示隐藏和显示prinatble观点:

* { 
    visibility: hidden; 
    } 

    #tableview * { 
    visibility: visible; 
    } 
+1

IMO,这是正确的做法。没有理由再次获取页面;这正是打印样式表的作用! – pkaeding 2010-04-05 16:35:50