如何使用Javascript弹出打印对话框?

MrD*_*ase 146 javascript

我有一个带有"打印"链接的页面,可以将用户带到打印机友好页面.客户希望在用户到达打印页面时自动显示打印对话框.我怎么能用javascript做到这一点?

Mar*_*ark 215

window.print();  
Run Code Online (Sandbox Code Playgroud)

除非你的意思是一个自定义的弹出窗口.

  • 有点旧,但我想添加... window.print(); setTimeout("window.close()",100); .这等待页面的其余部分加载足够的时间,但随后挂起,直到打印对话框上的打印按钮被按下或取消,然后再巧妙地关闭标签. (3认同)

mmi*_*ika 36

你可以做到

<body onload="window.print()">
...
</body>
Run Code Online (Sandbox Code Playgroud)


Dar*_*l H 19

我喜欢这个,所以你可以添加你想要的任何字段并以这种方式打印.

function printPage() {
    var w = window.open();

    var headers =  $("#headers").html();
    var field= $("#field1").html();
    var field2= $("#field2").html();

    var html = "<!DOCTYPE HTML>";
    html += '<html lang="en-us">';
    html += '<head><style></style></head>';
    html += "<body>";

    //check to see if they are null so "undefined" doesnt print on the page. <br>s optional, just to give space
    if(headers != null) html += headers + "<br/><br/>";
    if(field != null) html += field + "<br/><br/>";
    if(field2 != null) html += field2 + "<br/><br/>";

    html += "</body>";
    w.document.write(html);
    w.window.print();
    w.document.close();
};
Run Code Online (Sandbox Code Playgroud)

  • 这对我来说就像一个魅力.需要在浏览器中允许弹出窗口.我不确定"关闭"是否会被执行,因为标签永远不会消失. (2认同)

Dan*_*air 13

如果您只有一个没有单击事件处理程序的链接:

<a href="javascript:window.print();">Print Page</a>
Run Code Online (Sandbox Code Playgroud)


Eli*_*Eli 5

我这样做是为了确保他们记得打印横向,这对许多打印机上的很多页面都是必要的.

<a href="javascript:alert('Please be sure to set your printer to Landscape.');window.print();">Print Me...</a>
Run Code Online (Sandbox Code Playgroud)

要么

<body onload="alert('Please be sure to set your printer to Landscape.');window.print();">
etc.
</body>
Run Code Online (Sandbox Code Playgroud)


the*_*tar 5

您可以将其绑定到按钮或加载页面。

window.print();
Run Code Online (Sandbox Code Playgroud)