通过jQuery捕获打印事件

时间:2008-11-18 00:39:09

标签: jquery printing dynamic-css

我希望能够在我的页面被打印之前操作DOM。 Internet Explorer在窗口对象上有一个名为“onbeforeprint”的事件,但这是专有的,其他浏览器不支持。是否可以通过javascript(特别是jQuery,如果可能的话)来做到这一点?

在您提出要求之前,我无法轻松使用打印介质样式表来应用更改,因为我需要更改的元素具有无法使用全局样式表覆盖的内联样式。我需要覆盖这些内联样式以进行打印。如果需要,应该可以修改现有的jQuery,但这将是一个更耗时且更危险的更改。

干杯, 扎克

2 个答案:

答案 0 :(得分:4)

为什么不从其他函数中调用print()函数?

像:

function myPrint() {
  $("#myDiv").css({"border-color":"red"});
  window.print();
}

然后你可以从你需要的地方打电话。

答案 1 :(得分:2)

在CSS中的属性之后添加!important将允许它覆盖内联样式。例如:

<div class="test" style="color: blue;">Some Text</div>

的CSS:

  .test {
     color: red !important;
  }

将显示为红色。