0

找到此代码以从 javascript 打印。但它会打开一个窗口,其中包含要打印的文档。有没有办法隐藏那个文件?

var element=document.getElementById(element_id);
var newWin=window.open('','Print-Window','width=400,height=400,top=100,left=100');

newWin.document.open();
/* newWin.document.title = "Readings on PageLinks"; */
newWin.document.write('<html><head><title>Readings on PageLinks</title></head><body   onload="window.print()">'+element.innerHTML+'</body></html>');
newWin.document.close();

setTimeout(function(){ newWin.close(); },10);

该文档的打印是 onload() 完成的,所以我想没有它就无法打印。但是可以隐藏吗?

4

2 回答 2

1

您可以使用特定于打印的样式表来完成此操作,如如何仅打印选定的 HTML 元素?根本不要使用window.open();使用 CSS 类(如果需要,动态应用)来指定应该/不应该打印哪些元素。

于 2012-05-10T19:55:36.740 回答
0

将此添加到您的标记中:

<iframe id="ifrOutput" style="display:none;"></iframe>

添加以下javascript函数:

function printContainer(content, styleSheet) {
    var output = document.getElementById("ifrOutput").contentWindow;
    output.document.open();
    if (styleSheet !== undefined) {
        output.document.write('<link href="' + styleSheet + '" rel="stylesheet" type="text/css" />');
    }
    output.document.write(content);
    output.document.close();
    output.focus();
    output.print();
}

并这样称呼它:

// with stylesheet
printHtml('<div>Styled markup</div>', 'printStyles.css');

// without stylesheet
printHtml('<div>Unstyled markup</div>');
于 2012-12-13T14:12:30.787 回答