使用Javascript打印多个页面

使用Javascript打印多个页面,javascript,Javascript,我有一个网站,用户点击阅读更多按钮,这样他们就可以查看页面上的其余信息。我很好奇我如何才能做到用户不必单独打印每页。我想能够使它,这样我就可以有一个脚本,打印的相关网页。如果有人能帮我,给我指出正确的方向,我将不胜感激。我需要这个功能在所有浏览器中工作 谢谢我的直觉首先告诉我它需要一个基于服务器的解决方案,因为window.print函数只打印当前文档中的内容,您应该编写服务器代码来生成一个包含所有要打印的页面的网页,并从该页面调用window.print 但是您可以让jQuery为您工作,使用

我有一个网站,用户点击阅读更多按钮,这样他们就可以查看页面上的其余信息。我很好奇我如何才能做到用户不必单独打印每页。我想能够使它,这样我就可以有一个脚本,打印的相关网页。如果有人能帮我,给我指出正确的方向,我将不胜感激。我需要这个功能在所有浏览器中工作


谢谢

我的直觉首先告诉我它需要一个基于服务器的解决方案,因为
window.print
函数只打印当前文档中的内容,您应该编写服务器代码来生成一个包含所有要打印的页面的网页,并从该页面调用
window.print

但是您可以让jQuery为您工作,使用
.load
函数下载要打印的页面,然后在加载所有页面后,调用
窗口。打印
。如果由于某种原因不能使用jQuery,可以使用XHR自己编写整个管道


如果没有关于web应用程序结构的任何信息,很难提供更详细的答案。

您需要的是一个利用媒体样式的样式表。它基本上就像有两个独立的样式表;一个用于打印,一个用于查看。为了节省带宽,请将
打印区域保持为空,直到发出请求。在请求事件中,填写
打印区域
,其中包含您要执行的全部打印操作。我建议您研究jQuery及其加载和ajax请求

@media screen
    {
    #screenarea
        {
        display: block;
        }
    #printarea
        {
        display: none;
        }
    }
@media print
    {
    #screenarea
        {
        display: none;
        }
    #printarea
        {
        display: block;
        }
    }

我想你可以把它打印在一个层里面的iframe上

tihs就是一个例子(不是很好,但对这个想法有用):


通常,您不会使用JavaScript访问多个页面并打印它们。(如果有可能的话,这听起来有点像黑客攻击。)

相反,您可能希望有一个页面包含所有要打印的信息,CSS样式,用户可以查看并打印。(在这种情况下,您可以轻松使用JavaScript启动打印操作。)

可能是一个“全部打印”链接,将用户指向包含所有打印信息的页面(或以新页面打开页面)

你甚至可以更进一步,让它更有活力。可能在每个信息部分的标题旁边都有复选框,并有一个“打印选定内容”按钮,该按钮将选择内容发布到服务器,并仅将选定信息呈现到“全部打印”页面

我只是觉得,作为一个用户,这将比打印我一开始甚至没有下载的东西更重要(在这里,你也会冒着向用户的打印机发送太多内容并浪费他们资源的风险)

编辑


我刚刚想到的另一种方法。所有的内容首先需要放在不同的页面上吗?可能只是将内容放在默认情况下隐藏的
div
s中,“阅读更多”链接显示关联的
div
。那么,您所需要的印刷适性就是前面提到的CSS媒体样式。在浏览器中查看时,它们可以单独展开/折叠信息部分,但在打印页面时,所有内容都会展开。

将所有内容放在一个网页中(使用注入或服务器进程)后,格式化页面将使用CSS属性进行@media print,例如:

@media print {
    h1 {page-break-before: always;}
}
其他属性有“之后分页符”和“内部分页符”,后者有助于避免内容内部的分页符。

用浏览器内置的滚动条替换“阅读更多”按钮。