Capturing Print Event via jQuery

狂风中的少年 提交于 2020-01-14 13:47:41

问题


I would like to be able to manipulate the DOM just before my page is sent to be printed. Internet Explorer has an event on the window object called "onbeforeprint" but this is proprietary and isn't supported by other browsers. Is it possible to do this via javascript (jQuery in particular, if possible)?

Before you ask, I can't easily use a print media stylesheet to apply the changes as the elements I need to change have inline styles which can't be overridden with a global stylesheet. I need to override these inline styles for print purposes. It should be possible to modify the existing jQuery if needs be, however that would be a more time-consuming and risky change.

Cheers, Zac


回答1:


Adding !important after a property in your CSS will allow it to override the inline styles. For example:

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

css:

  .test {
     color: red !important;
  }

will be displayed red.




回答2:


Why not just call the print() function from within an other function?

Like:

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

Then you could call it from where you need it.



来源:https://stackoverflow.com/questions/297482/capturing-print-event-via-jquery

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!