从浏览器打印时jQuery是否运行?

时间:2013-01-29 17:19:42

标签: javascript jquery css printing

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

<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>

1 个答案:

答案 0 :(得分:1)

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

你想隐藏那些字段吗?您可以使用.empty()方法更轻松地实现。