【问题标题】:print multiple HTML(dynamic) on button click using javascript使用javascript在按钮单击时打印多个HTML(动态)
【发布时间】:2016-09-09 06:29:43
【问题描述】:

我创建了打印客户发票的应用程序。我想打印两个发票编号之间的所有发票,例如打印发票编号 10 到发票编号 30 之间的所有发票。

我想在单击或单个弹出窗口或不弹出任何窗口的情况下将它们全部打印出来。

此代码生成多个弹出窗口

这是我的代码

   $("#btnPrint").click(function () {

                var invStartNo = 10;
                var invUptoNo = 30;
                for (var i = invStartNo; i < invUptoNo; i++) {


                    var contents = functionWhichReturnHTML_byInvNo(i);//this function return dynamically html by invoice no

                    var frame1 = $('<iframe />');
                    frame1[0].name = "frame1";
                    frame1.css({ "position": "absolute", "top": "-1000000px" });
                    $("body").append(frame1);
                    var frameDoc = frame1[0].contentWindow ? frame1[0].contentWindow : frame1[0].contentDocument.document ? frame1[0].contentDocument.document : frame1[0].contentDocument;
                    frameDoc.document.open();
                    //Create a new HTML document.
                    frameDoc.document.write('<html><head><title>Account Statement</title>');
                    frameDoc.document.write('</head><body>');
                    //Append the external CSS file.

                    frameDoc.document.write('<link href="../../Content/bootstrap/css/bootstrap.min.css" rel="stylesheet" />');


                    //Append the DIV contents.
                    frameDoc.document.write(contents);
                    frameDoc.document.write('</body></html>');
                    frameDoc.document.close();
                    setTimeout(function () {
                        window.frames["frame1"].focus();
                        window.frames["frame1"].print();
                        frame1.remove();
                    }, 1000);


                }
            });

【问题讨论】:

  • 您目前面临的问题是什么?
  • 在 frame1 内创建 20 个帧?
  • 它生成多个弹出窗口我想用单个弹出窗口打印所有发票(或者如果可能的话不弹出窗口)
  • 如何在 frame1 中创建 20 个帧。请您发送一些示例代码@jeroen Heier

标签: javascript jquery html printing


【解决方案1】:
           var invStartNo = 10;
            var invUptoNo = 30;
     for (var i = invStartNo; i < invUptoNo; i++) {

   var contents = functionWhichReturnHTML_byInvNo(i);//this function return dynamically html by invoice no(call synchronously)

                //Append the DIV contents.
                frameDoc.document.write(contents);

      }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-25
    • 1970-01-01
    • 1970-01-01
    • 2021-05-15
    • 1970-01-01
    相关资源
    最近更新 更多