2010-07-21 2 views
7

window.print()를 호출하는 페이지가 있습니다. 페이지 하단에 window.print(); 주위의 코드에 액세스 할 수있는 방법이 없습니다. 그것은 서버에 의해 생성되고 나는 그것을 만질 수 없다. 기본적으로 IE 때문에 인쇄 대화 상자가 나타나기 전에 자바 스크립트를 실행해야하지만 페이지가로드 된 후에야합니다. window.print()에 도착하자 마자이 작업을 수행 할 수 없습니다. 인쇄 대화 상자가 나타납니다. 인쇄 할 필요가 있지만 먼저 myFunction()을 실행해야만 window.print()를 실행할 수 있습니다.페이지가 window.print()에 도착하기 전에 함수를 실행합니다.

<html><head></head><body></body><!--no access from here--><script>window.print();</script></html> 

답변

16

당신은 너무처럼 오버라이드 (override) 할 수 있어야한다 ...

var _print = window.print; 
window.print = function() { 
    alert("Hi!"); 
    // do stuff 
    _print(); 
} 
+0

나는 그것을 시도했다고 맹세 할 수 있었다. 그게 완벽하게 작동합니다! 감사! – joe

+0

Awww, 나를 펀치에 이길! +1. –

+0

@joe 문제 없습니다, 스택 오버플로에 오신 것을 환영합니다! 답변을 "수락"하려면 투표 아래 화살표 아래에있는 체크 표시를 클릭하십시오. –

8

당신은 IE에 대한 지원이 필요한 경우

onbeforeprint 이벤트를 참조 "기본적으로 인해 IE의 나는 ... 필요".

window.onbeforeprint = function() { 
    // some code  
} 

여기 장점은 코드가 거의 IE를 제외한 모든 브라우저 onbeforeprint을 지원하지 않는 브라우저에서 실행되지 것입니다.

+0

와우 새로운 이잖아 하나!! – joe

0

당신이 예에 액세스 할 수없는 하나의 전에 다른 <script> 태그를 넣어보십시오 :

<html><head></head><body></body><script>alert('Hello There !');</script><script>window.print();</script></html> 
관련 문제