关于样式表定义的media 属性,您可以解决很多打印问题。你可以声明
<link rel="stylesheet" type="text/css" media="screen" href="..." />
要包含一些仅用于屏幕的 css,请使用media="all" 定义一些信息同时显示在屏幕和打印机上,或者使 html 元素仅在打印期间显示。例如,使用 jQuery UI,您可以找到仅打印选定选项卡(或手风琴)的好主意。你会发现有用的不是打印一些隐藏的 div,比如div.loadingui。所以你可以制作一个类似的CSS
<style type="text/css" media="screen">
#printableButNotVisible { display:none }
</style>
<style type="text/css" media="print">
#accordion h3, #vcol, div.loadingui, div.ui-tabs-hide,
ul.ui-tabs-nav li, td.HeaderRight { display:none }
#printableButNotVisible { display:block }
</style>
这只是一个例子,但我希望能解释一下主要思想。此外,您可以动态创建 css 并在 html 文档中插入或切换(参见 http://docs.jquery.com/Tutorials:5_Quick_jQuery_Tips#Switch_A_Stylesheet)。
在打印期间从页面中删除菜单可能是个好主意,但我不能给你举例,因为我不知道你使用什么样的菜单。
如果有人知道用于 jQuery UI 和 jqGrid 的打印媒体的优秀 CSS,那对我来说也会很有趣。