Javascript Event Handler for Print

2019-01-07 22:42发布

I am trying to alter style at print-time:

Is there an event in javascript that you can listen for for when file>>print is called? What is it? Also - is there a handler for when printing is finished? What is it?

or if there is a better way to do this with some other means, such as style sheets, how do you do that?

5条回答
聊天终结者
2楼-- · 2019-01-07 23:10

In IE there are the nonstandard window.onBeforePrint() and window.onAfterPrint() event listeners. There isn't a non-IE way to do it that I know of, however.

What kinds of changes are you trying to make? It's possible that your problem could be solved by specifying different rules for your print stylesheet.

查看更多
倾城 Initia
3楼-- · 2019-01-07 23:10

We also found that you can do a print-only style with the following:

<style type="text/css">
@media print {
    div
    {
        overflow:visible;
    }    
}
</style>
查看更多
可以哭但决不认输i
4楼-- · 2019-01-07 23:12

IE has onbeforeprint and onafterprint

查看更多
Root(大扎)
5楼-- · 2019-01-07 23:24

Different Style Sheets

You can specify a different stylesheet for printing.

<link rel="stylesheet" type="text/css" media="print" href="print.css" />
<link rel="stylesheet" type="text/css" media="screen" href="main.css" />

One Style Sheet

As kodecraft mentioned, you can also put the styles into the same file by using the @media block.

@media print {
    div.box {
        width:100px;
    }
}

@media screen {
    div.box {
        width:400px;
    }
}
查看更多
再贱就再见
6楼-- · 2019-01-07 23:27

Firefox 6 now supports beforeprint and afterprint

https://developer.mozilla.org/en/Printing#Detecting_print_requests

查看更多
登录 后发表回答