2010-04-16 4 views
11

자바 스크립트를 사용하여 웹 페이지를 인쇄하고 싶습니다. 하지만 나는 팝업 창으로 페이지를 열고 싶지 않습니다. 어떻게 팝업 창으로 열지 않고 JavaScript window.print 메서드를 사용하여 'mypage.aspx'와 같은 웹 페이지를 직접 인쇄 할 수 있습니까? 팝업 창을 열지 않고 웹 페이지를 인쇄하는 방법은 무엇입니까?

는 또한 조건이 여기

'나는 이것에 대한 어떤 액티브 X를 사용하지 않는다'는 것은 내가 시도하려는 것입니다 :

var printWindow, printData; printWindow = window.open("", "printVersion", "menubar,scrollbars,width=640,height=480,top=0,left=0"); 

printData=document.getElementById("lblReport").innerHTML; printWindow.document.write(printData); 
printWindow.document.close(); 
printWindow.print(); 
+3

웹 페이지에서 window.print를 호출하면 어떤 점이 좋습니까? – Alsciende

+0

Alsciende, 전화를 걸어도 문제는 없지만 전화하기 전에 창을 열어야합니다.이 창은 열어보고 싶지 않습니다. 시나리오는 다음과 같습니다. page1.aspx 페이지가 있고 지금은 일부 출력을 생성하고 어느 쪽이 page2.aspx에 있습니까? 이제는 어떻게 열지 않고 page2.aspx를 인쇄 할 수 있습니까? –

+3

Gaurav, Rosdi가 먼저 제안한 것처럼 window.print()를 호출하면 팝업 창이 열리지 * 않을 것입니다. printoptions 대화 상자를 열 것입니다. 팝업 창이 아니며, 방지 할 수있는 것도 아닙니다. 이 창은 사용자가 인쇄 할 프린터, 용지 크기 등을 선택할 수 있도록하기 위해 필요합니다. –

답변

22

simpliest 용액 이벤트가 window.print 전화가 iframe 온로드에 다음 iframe이 해당 mypage.aspx의 내용을 로딩하는 것이다.

<button onclick="printPage()">print</button> 
<div id="printerDiv" style="display:none"></div> 
<script> 
    function printPage() 
    { 
     var div = document.getElementById("printerDiv"); 
     div.innerHTML = '<iframe src="mypage.aspx" onload="this.contentWindow.print();"></iframe>'; 
    } 
</script> 
+1

코드 스 니펫 덕분에이 문제도 해결할 수있었습니다! –

+0

왜이 트릭이 파이어 폭스에서 작동하지 않습니까? –

+0

작동해야합니다. 오류 콘솔을 참조하십시오. 아마도/js 오류가 있습니다. 확인하십시오. – jerjer

6
<html> 
    <head> 
     <title>Print</title> 
     <link rel="stylesheet" type="text/css" media="all" href="all.css" /> 
     <link rel="stylesheet" type="text/css" media="print" href="print.css" /> 
    </head> 
<body> 
    <p>I get printed</p> 
    <form> 
     <input type="button" onclick="window.print()" value="Print" /> 
    </form> 
</body> 
</html> 

all.css이 위로 확인하고 하단의 print.css이면 제대로 작동합니다.

+0

나는 모든 것을 해냈다. 내 질문과 코멘트를 먼저 읽은 다음 몇 가지 해결책을 제안 해주십시오. –

+5

Gaurav, 자원 봉사자 커뮤니티에서 무료로 도움을 얻고 있습니다. 당신이 싫어하는 답변을 위해 그들을 꾸미는 것은 그들이 당신을 돕기 위해 그들의 시간을 보내도록 격려하는 좋은 방법이 아닙니다. ... – sblom

+0

@Gaurav, 나는 풀로 작용하는 HTML 샘플을 포함하는 대답을 다시 쓴다. –

1

음. 페이지에 직접 window.print();을 사용하십시오. 그 자체로는 인쇄 속성을 설정하는 인쇄 속성 창을 제외하고는 새 창을 열지 않습니다.

2

확실하지 않은 경우 보이지 않는 iframe을 만들고 페이지 2를로드 한 다음 인쇄 해보십시오.

0

CSS 인쇄 스타일 시트를 사용하고 자바 스크립트를 사용하지 않아도됩니다. 사용자가 페이지를 인쇄해야합니다. 예 :

<link rel="stylesheet" type="text/css" media="print" href="print.css" /> 
관련 문제