如何使用jQuery打印div内容? (确保已打印的内容为彩色形式。)

时间:2019-08-25 11:26:09

标签: javascript jquery

我想打印一个div元素。我有一个打印div的函数。但我想用CSS打印div内容。

function printDiv() {
        var divContents = document.getElementById("mymodelid").innerHTML;
        var a = window.open('', '', 'height=600, width=700');
        a.document.write('<html>');
        a.document.write(divContents);
        a.document.write('</body></html>');
        a.document.close();
        a.print();

    }

2 个答案:

答案 0 :(得分:1)

此代码将帮助您打印div。但是,如果要使用CSS进行打印,则必须在CSS中使用@media规则。

function printDiv() 
{
  var divToPrint=document.getElementById('mymodelid');
  var newWin=window.open('','Print-Window');
  newWin.document.open();
  newWin.document.write('<html><body onload="window.print()">'+divToPrint.innerHTML+'</body></html>');
  newWin.document.close();
  setTimeout(function(){newWin.close();},10);

}

在CSS文件中使用@media打印,如下所示:

 @media print {
         .mymodelid {background-color:#FF00FF;}
      }

如果它不起作用,则应更改浏览器选项并检查“背景图片”。

答案 1 :(得分:1)

正如sajadre所说,我也建议使用createElement()

要更改字体颜色,可以使用方法fontColor()(请注意,它已被弃用):

function printDiv() {
  const el = document.createElement('div');
  el.innerHTML = 'Hello World';
  var divContents = el.innerHTML.fontcolor("red");        
  var a = window.open('', '', 'height=600, width=700');
  a.document.write('<html>');
  a.document.write(divContents);
  a.document.write('</body></html>');
  a.document.close();
  a.print();
}