使用javascript打印页面时碰到的问题

    我做的这个项目,打印报表是一个非常重要的功能,所以我花了很多时间来研究这个,下面我总结了要使用js代码来控制打印输出时经常会遇到的问题:
  • 需要打印的内容却又不需要或不想让用户在网页上看到,比如说打印的时间戳,或打印人等。
  • 页面上需要显示而又不想打印的内容,比如网页上的广告,菜单,触发打印动作的链接,按钮。
    上面这两个问题事实上是一个问题,而且也只能利用css2来解决。在css2里有一条media规则,它用来指定CSS适用的媒体,也就是说使用这个规则你可以为同一个网页为打印机,显示器或其它媒体分别指定一套CSS规则以代显示,所以答案就是

@media print { .noprint { display: none; } }
@media screen { .noscreen { display: none; } }

    如果你不想显示页眉页脚之类的东西,如标题,当前网页的URL,页码...,我遗憾的告诉你,这个在JS中是不允许修改的,只能让你的用户自己在浏览器设置中修改。一般是通过文件菜单下的页面设置修改。

    也就是说,使用css2我们就可以实现sreen-friendly同时又printer-friendly的目的。然后简单的使用window.print就可以打印出网页上特定的内容了。

你可能感兴趣的:(使用javascript打印页面时碰到的问题)