新弹出窗口有问题吗?

时间:2011-09-14 09:44:22

标签: javascript jquery

在这个波纹管程序中,如果单击“PRINT”,html内容将被添加到名为b.html的新弹出窗口中。它运行正常,但b.html有一些html内容,当新的弹出窗口打开时我丢失了这些数据。在没有遗漏b.html的html内容的情况下,我如何在其中添加新的html内容。

我的示例代码:

网页名称:a.html

                <html>
                     <head>
                          <script type="text/javascript" src="js/jquery-1.6.1.min.js">  </script>
                          <script type="text/javascript">
                               $(document).ready(function()
                               {
                                    $("#print").click(function()
                                    {
                                         var newWind=window.open('b.html', 'Print message',"left=100,screenX=200,menubar=yes, width=980,height=500, location=yes,resizable=yes,scrollbars=yes,status=yes");
                                         var printableHTML=$("#msg").html();
                                         newWind.document.write(printableHTML);
                                         //newWind.append(printableHTML);
                                    });
                               });
                          </script>
                     </head>
                     <body>
                          <span id="print"><u>PRINT</u></span>

                          <div id="msg">
                             <h4>  I am printing this message...</h4>
                          </div>
                     </body>
                </html>

页面名称:b.html

           <html>
                <head> </head>
                <body>
                    <h4>Hello</h4>
                    <div id="target"></div>
                </body>
           </html>

3 个答案:

答案 0 :(得分:1)

在页面加载后使用document.write,您将替换文档。

使用窗口的加载事件,以便在加载文档后可以访问该文档的内容:

$(newWind).load(function() {
  $('#target', newWind.document).html(printableHTML);
});

答案 1 :(得分:0)

不是弹出一个新窗口并使用您想要打印的位填充它,更好的解决方案是打印为标准window.print()并使用打印介质样式表来显示/隐藏部分您想要打印的页面。

@media print {
  /* style sheet for print goes here */
}

答案 2 :(得分:0)

更改

var newWind=window.open('b.html', 'Print message', ...

window.open('b.html', 'Print_message', ...

然后你可以做

Print_message.document.write(printableHTML);