2015-11-23 34 views
0

我在寻找一种巧妙的方式来打印页面的一小部分,具体取决于用户点击的链接。一个例子:根据点击元素打印页面的不同部分

Item 1 PRINT 
Item 2 PRINT 

如果我点击项目1旁边的打印,我只想让项目1在打印对话框中打开。同样,如果我点击该项目旁边的项目,我只想要打开项目2。

我知道<a href="javascript:window.print()">以及如何将一个名为noprint的类添加到任何我不希望打印的元素中,但是我所寻找的是一些聪明而动态的方式,让它根据元素进行更改在用户正在与之交互的页面上。

任何人都知道一种方法来解决这个问题?

+0

http://stackoverflow.com/questions/4373922/jquery-print-selected-div-instead-complete-page – toddmo

回答

2

这是我最喜欢的做法。它不会在这里工作的S/O,但它在this pen

function printDiv(id) {  
 
     var printContents = document.getElementById(id).innerHTML; 
 
     var originalContents = document.body.innerHTML; 
 
     document.body.innerHTML = printContents; 
 
     window.print(); 
 
     document.body.innerHTML = originalContents; 
 
    }
<div id="first">I'm first</div> 
 
<button onclick="printDiv('first')">Print</button> 
 
<div id="second">I'm second</div> 
 
<button onclick="printDiv('second')">Print</button>

0
  1. 创建工作在后台将在适当的准备渲染所需的项目进行打印视图单独行动(类似的财产以后/print?itemId=123
  2. 通过点击链接打开单独窗口,视图和那里调用window.print();

对于小型任务来说,这似乎是一项很大的工作,但是您可以从独立,灵活的屏幕和打印同一项目的视图中获益。

相关问题