2009-02-11 39 views
8

Tôi đang cố gắng thay đổi kiểu tại thời điểm in:Trình xử lý sự kiện Javascript cho in

Có sự kiện nào trong javascript mà bạn có thể nghe khi tệp >> in được gọi không? Nó là gì? Ngoài ra - là có một xử lý cho khi in xong? Nó là gì?

hoặc nếu có cách nào tốt hơn để thực hiện việc này bằng một số phương tiện khác, chẳng hạn như tờ định kiểu, bạn làm như thế nào?

Trả lời

7

khác nhau Style Sheets

Bạn có thể chỉ định một kiểu khác nhau để in.

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

Một Style Sheet

Như kodecraft đề cập, bạn cũng có thể đặt phong cách vào cùng một tập tin bằng cách sử dụng các khối @media.

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

@media screen { 
    div.box { 
     width:400px; 
    } 
} 
0

IE đã onbeforeprint và onafterprint

3

Trong IE có các window.onBeforePrint() và window.onAfterPrint() nghe sự kiện chuẩn. Tuy nhiên, không có cách nào không phải là IE để làm điều đó mà tôi biết.

Bạn đang cố gắng thực hiện những loại thay đổi nào? Có thể sự cố của bạn có thể được giải quyết bằng cách chỉ định các quy tắc khác nhau cho bản định kiểu in của bạn.

+0

Đối in nó có thể thoải mái để thêm nội dung quảng cáo vào DOM. Điều này tất cả có thể được thực hiện với print.css, ẩn các phần tử khác theo mặc định, cho phép chúng. Tôi thích cách tiếp cận javascript mặc dù. Bạn có biết giải pháp cho các trình duyệt khác không? – Hendrik

2

Chúng tôi cũng phát hiện ra rằng bạn có thể làm một phong cách in chỉ với những điều sau:

<style type="text/css"> 
@media print { 
    div 
    { 
     overflow:visible; 
    }  
} 
</style> 
3

Firefox 6 hỗ trợ tại beforeprint và afterprint

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

+1

Bạn có thể mô phỏng điều này trong chrome 9+ và Safari 5.1+ bằng cách sử dụng api matchMedia https://developer.mozilla.org/en/DOM/window.matchMedia –

+0

Roger, bạn có quan tâm đến giải pháp này không? Cụ thể mô phỏng điều này trong chrome/safari. Cảm ơn bạn – dovidweisz

+0

@wapsee jsfiddle.net/W4As4 –

Các vấn đề liên quan