Javascript打印显示隐藏的元素

时间:2014-12-12 16:57:15

标签: javascript

我正在尝试使用php和javascript构建计费系统。为此,我需要在新标签中打印一些内容。我为此目的使用以下代码。变量 divElements 包含需要打印的表格的内部html。

var print_body =
                  '<!DOCTYPE html><head><meta charset="utf-8"><title></title><link rel="stylesheet" href="style.css" type="text/css"></link></head><body style="background:none"><table class="dop" id="table" border="1" style="border-collapse:collapse;border-style:solid">'+
                  divElements +'</table></body>';
                //Print  Page
                  newWin= window.open("");
                  newWin.document.write(print_body);
                  newWin.print();

使用类 dop 我试图隐藏不需要的元素。在打印预览中,设计正确显示,但在进行打印输出时,隐藏的元素在纸张中打印。 我认为问题是打印函数在样式加载之前运行。 请帮我解决这个问题。

thanku

3 个答案:

答案 0 :(得分:0)

不确定这是否可以回答您的问题,但您可以将样式表加载到打印视图中,也可以将display: none;设置为元素。

这是我使用的功能:

function print() {
    var popup = window.open('', 'print', 'height=600,width=700,scrollbars=yes');
    popup.document.write('<html><head><title>TITLE</title>');
    var printStylePath = '/Content/print.css';
    popup.document.write('<link rel="stylesheet" href="' + printStylePath + '" type="text/css" />');
    popup.document.write('</head><body>');
    popup.document.write(printBody);
    popup.document.write('</body>');
    popup.document.write('</html>');
    popup.document.close();
    popup.focus();
    popup.print();
    popup.close();
    return true;
}

答案 1 :(得分:0)

尝试,

打印前调用document.close

var print_body = '<!DOCTYPE html><head><meta charset="utf-8"><title></title><link rel="stylesheet" href="style.css" type="text/css"></link></head><body style="background:none"><table class="dop" id="table" border="1" style="border-collapse:collapse;border-style:solid">'+
                  divElements +'</table></body>';
                //Print  Page
                  newWin= window.open("");
                  newWin.document.write(print_body);
                  newwin.document.close();
                  newWin.print();

答案 2 :(得分:0)

在你的css中使用@media,如下所示:

@media screen {
    p {
        font-family: verdana,sans-serif;
        font-size: 14px;
    }
}

@media print {
    p {
        font-size: 20px;
        color: red;
    }
}

因此,要隐藏或不为打印机显示的元素为其定义@media print

有关@media checkout this link

的更多资源