javascript打印特定的div

时间:2015-11-01 13:55:42

标签: javascript jquery css

我从这个网站获得了这个代码来打印div:

    //gender is string
    if ((gender.equals("0") || gender.equals("1")) && (ageint >= 18 && ageint < 26))
    {
        //group is string
        group = "Category A";
    }

如何将css代码添加到此javascript以应用于具有id =&#39; table&#39;的表格?

    function printData()
{
   var divToPrint=document.getElementById("printTable");
   newWin= window.open("");
   newWin.document.write(divToPrint.outerHTML);
   newWin.print();

   newWin.close();
}

$('button').on('click',function(){
printData();
})

1 个答案:

答案 0 :(得分:3)

请查看:http://jsfiddle.net/rhjv1u11/

 function printData()
{
   var divToPrint=document.getElementById("printTable");
   newWin= window.open("");
   newWin.document.write(divToPrint.outerHTML);
    var css =`table, td, th {
        border: 1px solid black;
        text-align:justify;
    }

    th {
        background-color: #7a7878;
        text-align:center
    }`;
   var div = $("<div />", {
    html: '&shy;<style>' + css + '</style>'
  }).appendTo( newWin.document.body);
   newWin.print();

   newWin.close();
}

$('button').on('click',function(){
printData();
});

该示例只是插入一个包含规则的样式元素。 如果您需要分配的CSS与示例建议的一样少(并且不需要大量维护),这是一个充分的解决方案。

如果它更复杂,复杂的CSS你应该访问newWin.document.head并插入一个节点来加载外部CSS。这看起来有点像这样:

var linkElement=document.createElement("link");

linkElement.setAttribute("rel", "stylesheet");
linkElement.setAttribute("type", "text/css");
linkElement.setAttribute("href", "your.css.file.here.css")
newWin.document.getElementsByTagName("head")[0].appendChild(linkElement)