在beforeprint事件中使用JQuery

时间:2010-03-18 10:30:36

标签: javascript jquery events onbeforeprint

我有以下功能。

<script type="text/javascript">
     window.onbeforeprint = expandAll;

     function expandAll(){
       $(".fieldset:gt(0)").slideDown("fast");
      }
</script>

对于这个html

<table class="sectionHeader" ><tr ><td>Heading</td></tr></table>
 <div style="display:none;" class="fieldset">Content</div>

我在页面上有几个内容块,但是当我打印预览或打印时,我可以看到所有div在打开打印预览或打印之前向下滑动,但在实际打印预览或打印输出时它们都崩溃了。

任何人都知道为什么会这样?

感谢。

2 个答案:

答案 0 :(得分:3)

您需要使用打印样式表,例如

<link href="/css/print.css" rel="stylesheet" type="text/css" media="print"/>

您可以专门针对您希望打印页面的外观进行设置,而无需使用JS对其执行任何操作。

答案 1 :(得分:1)

CSS媒体仅适用于演示,除非JavaScript使用样式对象或jQuery css方法,否则无法使用CSS更改禁用JavaScript

你需要绑定到unprint文档窗口的beforeprint事件, 一般来说,jquery只是放下并且所有小写的事件名称都是

    `function expandAll() {
       $(".fieldset:gt(0)").slideDown("fast");
       }

    $( window ).bind( "beforeprint", expandAll );

    // Anonymous would look like

    $( window ).bind( "beforeprint", function() { 
                 $(".fieldset:gt(0)").slideDown("fast"); 
                 } );`