你可以在javascript中的print()函数中添加参数吗?

时间:2009-05-20 11:11:12

标签: javascript

我正在寻找一种在打印功能上添加参数的方法,因为我只需要打印表格,当我提醒表格时它会显示正确的值但是当我打印时会打印整个页面。< / p>

我的代码是

aa = document.getElementById('tablename').innerHTML

如果我alert(aa)它给了我写入值 然后我print(aa)它给了我整个页面。 所以我尝试了print(aa)aa.print,但它不起作用。

有没有人知道这方面的解决方案?

4 个答案:

答案 0 :(得分:12)

打印样式表很不错,但您仍然可以在Javascript中完成此操作。只需将您的值传递给以下函数...

function printIt(printThis) {
  var win = window.open();
  self.focus();
  win.document.open();
  win.document.write('<'+'html'+'><'+'body'+'>');
  win.document.write(printThis);
  win.document.write('<'+'/body'+'><'+'/html'+'>');
  win.document.close();
  win.print();
  win.close();
}

答案 1 :(得分:6)

定义一个只显示表格的打印样式表。

没有必要让它变得动态。

只需将您不希望看到的那些部分定义为display:none(如alistapart文章中所述)

答案 2 :(得分:1)

不,你不能。

您可以做的是动态修改打印介质样式表并显示:none您不想要的元素。

YUI StyleSheet可能对此有所帮助。

答案 3 :(得分:0)

我们可以使用下面的PDF表格视图来实现您所要求的功能,在我的情况下,我给了表id =“ tableId”,然后将该页面数据替换为我们需要的表:

printTarget(tableId) {
    let divToPrint = document.getElementById('tableId');
    let htmlToPrint = 
        '<style type="text/css">' + 
        'table {'+'font-family: arial, sans-serif;'+ 
        'border-collapse: collapse;'+'width: 95%;'+ 
        'margin-left: 20px'+'}'+   
        'th, td {' +
        'border:1px solid #000;' +
        'padding: 8px;' +
        '}'+ 'tr:nth-child(even) {'+
        'background-color: #dddddd;'+'}'+
        '</style>';
    htmlToPrint += divToPrint.outerHTML;
    let windowToPrint = window.open("");    
    windowToPrint.document.write(htmlToPrint);
    windowToPrint.print();
    windowToPrint.close();
}