0

我正在开发一个简单的基于 jQuery 的 Web 应用程序计算器,其中会出现 5 个弹出窗口及其内容。但最后当我点击主窗口的打印按钮时,只打印出主窗口的内容。但我需要打印所有弹出窗口内容以及主窗口。我在谷歌上搜索过,但没有得到任何有效的答案。

这是我的打印功能:

 <SCRIPT LANGUAGE="JavaScript">
    if (window.print) {
       document.write('<form> ' + '<input type=button name=print value="Print" '
                        + 'onClick="javascript:window.print();"></form>');
    }
 </script> 
4

1 回答 1

1

当您调用 时,javascript 弹出窗口将关闭window.print(),因此显然它们不会以这种方式打印。

您可以以各种形式执行此操作,对于所有这些,您很可能必须为打印按钮的onclick事件创建一个函数。

最简单的方法是将 5 个弹出窗口的 html 复制到文档底部的隐藏 div 中,您可以通过 JQuery 将其复制到该 div 中,然后在发送和隐藏div 之前.html()调用该div。.show()window.print()

打印按钮的 onclick 事件的函数可能类似于:

function printpage()
{
    $('#hiddendiv').html($('#popupContact_1').html() + '<br />' +  $('#popupContact_2').html() + '<br />' +  $('#popupContact_3').html() +  '<br />' + $('#popupContact_4').html() + '<br />' +  $('#popupContact_5').html());
    $('#hiddendiv').show();
    window.print();
    $('#hiddendiv').hide();
}

在尝试此功能之前,不要忘记在文档底部创建一个 div,id=hiddendiv并在打印按钮的 onclick 事件中style="display:none"调用printpage()该功能。=)

您也可以只.show()为每个弹出 div调用 a$('.a').show()并将它们放置在页面的绝对位置 - 遍历它们.each以添加高于前一个的最高值 - 在调用.print().

于 2012-05-13T09:22:51.280 回答