2011-04-27 4 views
2

화면 스타일 시트에 인쇄 스타일 시트를 적용하여 인쇄 대화 상자 앞에 인쇄 스타일 페이지의 미리보기를 표시하려고합니다.인쇄 대화 상자 전에 스타일을 미리 보는 방법은 무엇입니까?

이 작동하지 않습니다

$('link[media*="screen"]').attr("href",url+"css/print/default.css"); 
alert("Ok?"); 
window.print(); 

어떤 힌트 :

$('link[media*="screen"]').attr("href",url+"css/print/default.css"); 
window.print(); 

하지만,이 작업을 수행하는 인쇄() 전에 경고()와

?

답변

2

window.print의이 기능 지연 실행 몇 초 (delay 매개 변수가 약 5 초 기본) :

function doPrint(delay){ 
delay = delay || 5; //default to 5 seconds 
$('link[media*="screen"]').attr("href",url+"css/print/default.css"); 
setTimeout(function(){window.print();},delay*1000); 
} 

또한 함수에 $('link[media*="screen"]').attr("href",url+"css/print/default.css");의 역으로 ​​바꾸어 인쇄 대화 상자 후 원래의 CSS를 복원 할 수 setTimeout에서 호출되었습니다.

+0

감사합니다.이 옵션을 고려했습니다 : 작동하지만 지연을 임의로 선택해야합니다. – kvwyns

+0

@kvwyns 괜찮아요,하지만 어쩔 수 없어요. * 임의 선택 지연을 선택해야합니다. * ...? – KooiInc

+0

나는 500ms 지연이 항상 효과가 있다는 것을 확신 할 수 없다는 것을 의미했기 때문에 나는 교육적인 추측을해야만한다. 두 번째 팁 (CSS 복원)을 보내 주셔서 감사합니다. 나는이 명백한 가능성을 간과했습니다. – kvwyns

0

인쇄 대화 상자를 표시 할 때까지 window.print()를 호출하지 마십시오. 페이지에 다른 버튼을 추가하여 사용자가 인쇄 대화 상자를 열 수 있습니다 (이 버튼은 미리보기를 표시 할 때 표시되지만 인쇄 할 때 다시 숨기는 것을 잊지 마십시오!).

0

스타일 시트를로드하는 데 시간이 걸립니다. 경고가 없으면 스타일 시트를로드하기에 충분한 시간이 경과하기 전에 print으로 전화를 걸고 있습니다.

힌트 :

브라우저에는 인쇄 및 인쇄 미리보기 기능이 내장되어 있습니다. 휠 재교육을 피하십시오.

+0

물론 당연하지만 브라우저에서 _preview_를 인쇄하면 javascript에서 호출 할 수 없습니다. 또한 내가 좋아하는 브라우저 (chrome)는 지금 당장 (12.0 dev) 하나를주지 않는다. 미리보기가 정말 필요합니다. 스타일 시트가 사용자가 의심하는 것보다 더 많이 변경됩니다. – kvwyns

+0

크롬 12/Mac은 인쇄 미리보기가 있습니다. (보통 인쇄 대화 상자에서) – Quentin

관련 문제