2

选择从浏览器打印后,我在呈现的模板页面上运行以下代码:

<script type="text/javascript">
$(function() {
    $("td:contains('Labour')").next("td").addClass("white");
    var thisTr = $("td:contains('Labour')").parent();
    thisTr.children().eq(2).addClass("white");
    thisTr.children().eq(3).addClass("white");
});
</script>

CSS:

 @media print {
      body           { margin:auto; }
      .section       { page-break-inside:avoid; }
      div#sfWebDebug { display:none; }
      .white {color: white;}
    }

我检查了代码,它在普通浏览器窗口中工作:http: //jsfiddle.net/elen/vArH8/

但是该white课程似乎不适用于弹出窗口以进行打印。我在 Chrome 和 Firefox 中尝试过。

浏览器是否允许在打印时运行 JavaScript?


回答我自己的愚蠢问题 - 如果我先将 jquery 插件添加到模板中会有所帮助!

以下代码完美运行:

<script type="text/javascript">
$(document).ready(function() {
    var thisTr = $("td:contains('Labour')").parent();
    thisTr.children().eq(1).empty();
    thisTr.children().eq(2).empty();
    thisTr.children().eq(3).empty();
    window.print();
});
</script>
4

1 回答 1

1

这不是 javascript 的问题,只是打印机不打印白色。它通常会丢弃 CSS 以使内容更具可读性。

您只想隐藏这些字段吗?您可以使用 .empty() 方法更轻松地实现这一目标。

于 2013-01-29T17:32:42.477 回答