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

Javascript 从浏览器打印时是否运行jQuery?,javascript,jquery,css,printing,Javascript,Jquery,Css,Printing,从浏览器中选择打印后,我将在呈现的模板页面上运行以下代码: $(函数(){ $(“td:contains('Labour')”).next(“td”).addClass(“white”); var thisTr=$(“td:contains('Labour'))”).parent(); thisTr.children().eq(2).addClass(“白色”); thisTr.children().eq(3).addClass(“白色”); }); CSS: @媒体打印{ 正文{margi

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


$(函数(){
$(“td:contains('Labour')”).next(“td”).addClass(“white”);
var thisTr=$(“td:contains('Labour'))”).parent();
thisTr.children().eq(2).addClass(“白色”);
thisTr.children().eq(3).addClass(“白色”);
});
CSS:

@媒体打印{
正文{margin:auto;}
.section{内部分页符:避免;}
div#sfWebDebug{display:none;}
.white{颜色:白色;}
}
我检查了代码,它在正常浏览器窗口中工作:

但是,
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>

$(文档).ready(函数(){
var thisTr=$(“td:contains('Labour'))”).parent();
thisTr.children().eq(1).empty();
thisTr.children().eq(2).empty();
thisTr.children().eq(3).empty();
window.print();
});

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


是否要隐藏这些字段?可以使用.empty()方法更轻松地实现这一点

你不是刚刚证明了他们没有吗?
如果(window.matchMedia(“print”).matches){……}
@Waleed Khan-有办法克服这个问题吗?@WaleedKhan我怀疑他只是证明了这一点,因为这不是真的。。。不确定在这种情况下发生了什么。@codeiz以及这段代码应该在哪里?用于打印的父窗口或模板?simple and Smart=)我将尝试这样做以支持这一点:当我在OS X上的Chrome中尝试该示例时,
.white
字段显示为浅灰色。正在添加该类并产生效果,但它不是您所期望的。
$(“td:contains('Labour'))。下一步(“td”).empty()-也不起作用=(@Elen你能描述一下哪个部分不工作吗?打印时字段是否仍然显示?当我查看打印预览和导出到xps时,这些字段按预期为空。@k.odell是的,我仍然可以看到的内容,但当我查看页面源代码时-代码在那里,但不做任何操作..我不导出-只打印f页rom浏览器