选择从浏览器打印后,我在渲染模板页面上运行以下代码:
<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>
答案 0 :(得分:1)
这不是javascript的问题,只是打印机不打印白色。它通常会丢弃CSS以使事情更具可读性。
你想隐藏那些字段吗?您可以使用.empty()方法更轻松地实现。