如何打印已被javascript更改的页面?

如何打印已被javascript更改的页面?,javascript,css,ruby-on-rails,pdf,printing,Javascript,Css,Ruby On Rails,Pdf,Printing,这是我所拥有的一些东西 用户可以通过删除项目、添加项目或单击项目将其划掉来更改页面。我希望用户能够打印他们用javascript修改过的页面。据我所知,要让用户打印,您需要使用不同的样式表设置创建一个单独的文件 我使用的是Rails 4,我想我会用它为用户创建一个PDF 1) 我不知道如何生成删除、添加和删除了正确内容的文档 2) 我不确定如何生成文档,这样它就没有导航之类的东西(因为打印出来的列表不需要导航)。我想用CSS隐藏它。1)客户所做的更改是客户端的吗?在这种情况下,跟踪所有用户的更改

这是我所拥有的一些东西

用户可以通过删除项目、添加项目或单击项目将其划掉来更改页面。我希望用户能够打印他们用javascript修改过的页面。据我所知,要让用户打印,您需要使用不同的样式表设置创建一个单独的文件

我使用的是Rails 4,我想我会用它为用户创建一个PDF

1) 我不知道如何生成删除、添加和删除了正确内容的文档

2) 我不确定如何生成文档,这样它就没有导航之类的东西(因为打印出来的列表不需要导航)。我想用CSS隐藏它。

1)客户所做的更改是客户端的吗?在这种情况下,跟踪所有用户的更改,当用户单击“打印”时,将所有这些更改像参数一样发送到rails,以便您可以从rails操作中呈现要打印的正确信息

但通常,在rails/javascript应用程序上,当用户在客户端使用javascript执行不同的操作时,它会调用一些ajax代码,将更改通知rails应用程序,以便您可以将新状态存储在rails数据库中,以便用户可以稍后重新加载状态。您还可以将应用程序的状态存储在会话或临时缓存中

2) 当我想要自定义用户正在打印的内容时,我会在html上隐藏我不想打印的类,当包含css时,你会告诉浏览器css应该通过包含媒体打印应用于打印的文档,如:

stylesheet_link_tag "my_style", media: "print"
然而,在这种情况下,您没有使用浏览器打印功能,根据我从您的问题中了解到的情况,您将生成一个pdf,因此,您将结束从rails渲染视图,您可以添加一个参数,让视图知道它将渲染以供打印(因此,您可以绘制自定义css或避免渲染导航栏),也可以使用自定义代码/视图调用其他操作来生成pdf