2011-09-09 4 views
3

는 코드의 라인 브라우저의 팝업에서 HTML 페이지를 만든 다음 사용자에 대한 팝업이 출력 다음자바 스크립트 인쇄 팝업 창이 파이어 폭스/크롬에서 작동하지만 Internet Explorer가

function printPage(htmlPage) 
{ 
    var w = window.open("about:blank"); 
    w.document.write(htmlPage); 
    w.print(); 
} 

이 코드는 성공적으로 열립니다 Firefox와 Chrome 모두에서 인쇄 대화 상자. 그러나 IE에서는 인쇄 대화 상자가 표시되지 않습니다. 어떤 제안? 아무 소용

function printPage(htmlPage) 
{ 
    var w = window.open("about:blank"); 
    w.document.write(htmlPage); 
    w.print(); 
    w.close(); 
} 

: 다른 사람이 수정에게 문제를 제안으로

는 또한, 인쇄()를 호출 한 후 팝업을 닫는 시도했습니다.

+0

개발자 콘솔에서 무엇을 말 했나요? –

+0

이상한; IE8에서는 함수가'w' 아래에 존재하고 호출 할 때 오류가 발생하지 않지만 아무 일도 일어나지 않습니다. –

답변

8

close()document 전에 시도하십시오 print().

function printPage(htmlPage) 
{ 
    var w = window.open("about:blank"); 
    w.document.write(htmlPage); 
    w.document.close(); 
    w.print(); 
} 

Works in IE9.

+0

고마워요 @ josh3736이 일했습니다! 문제는 문서가 아니라 창을 닫으려고하는 것이 었습니다. 이제 작동합니다. – Kyle

+0

오래된 것을 알고 있지만 ...이 동작에 대한 논리적 인 설명이 있다면 궁금 할 것입니다. 감사합니다. 덕분에 Firefox와 관련된 문제를 해결할 수있었습니다. – dmikam

+0

[spec says] (https://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-98948567) "'close()''open()에 의해 열린 문서 스트림을 닫습니다.) *** 및 강제 렌더링 *** ". 페이지가 아직 완전히 렌더링되지 않았으므로 인쇄 할 수없는 것처럼 보입니다. 왜? ¯ \\ _ (ツ) _/¯ – josh3736

관련 문제