1

我有以下功能。

<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 在打开打印预览或打印之前向下滑动,但在实际打印预览或打印输出时它们都崩溃了。

任何人都知道这是为什么?

谢谢。

4

2 回答 2

2

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

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

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

于 2010-03-18T10:36:51.763 回答
2

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

您只需要在打印事件之前绑定到联合国文档窗口,通常 jquery 只是删除 on 并且事件名称全部小写。

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

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

// Anonymous would look like

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

于 2013-12-14T20:24:48.500 回答