2010-04-16 18 views
11

मैं जावास्क्रिप्ट का उपयोग कर एक वेब पेज मुद्रित करना चाहता हूं। लेकिन मैं पृष्ठ को पॉपअप विंडो के रूप में नहीं खोलना चाहता हूं। मैं पॉपअप विंडो के रूप में इसे खोलने के बिना जावास्क्रिप्ट विंडो.प्रिंट विधि का उपयोग करके 'mypage.aspx' जैसे सीधे एक वेब पेज को कैसे प्रिंट कर सकता हूं?पॉपअप विंडो खोलने के बिना वेब पेज कैसे प्रिंट करें?

भी शर्त है

यहाँ 'मैं इस बात के लिए किसी भी ActiveX का उपयोग नहीं करना चाहते हैं' क्या मैं कोशिश करना चाहते है:

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, इसे कॉल करने में कोई समस्या नहीं है लेकिन इसे कॉल करने से पहले मुझे एक विंडो खोलनी है, जिसे मैं खोलना नहीं चाहता हूं। यहां परिदृश्य है: मेरे पास एक पृष्ठ 1.aspx पृष्ठ है और अब मैंने कुछ आउट डाला है और जो पेज 2.aspx में है, अब मैं इसे खोलने के बिना पेज 2.aspx कैसे प्रिंट कर सकता हूं? –

+3

गौरव, window.print() को कॉल करते हुए, जैसा कि रोज़ी ने पहले सुझाव दिया था, * पॉपअप विंडो नहीं खोलेंगे। यह एक प्रिंटोप्शन संवाद खोल देगा, यह पॉपअप विंडो नहीं है, न ही ऐसा कुछ है जिसे आप रोक सकते हैं। तो उपयोगकर्ता जो प्रिंटर से, पेपर आकार, आदि –

उत्तर

22

simpliest समाधान onLoad द्वारा स्थापित window.print फोन iframes पर तो एक 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

इसे काम करना चाहिए, कृपया त्रुटि कंसोल देखें, शायद जेएस त्रुटि है/है, कृपया जांचें। – 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

गौरव, आपको स्वयंसेवकों के समुदाय से मुफ्त सहायता मिल रही है। उन्हें जवाब है कि आप पसंद नहीं है के लिए डांट उन्हें मदद करने के लिए ... – sblom

+0

@Gaurav उनके समय बिताने के लिए प्रोत्साहित करने के लिए एक अच्छा तरीका नहीं है, मैं इस सवाल का जवाब पुनर्लेखन एक पूर्ण काम कर रहे एचटीएमएल नमूना शामिल करने के लिए, आशा है कि यह मदद करता है। –

1

उम। पेज पर सीधे window.print(); का उपयोग करें। अपने आप में एक नई विंडो नहीं खुलती है (मुद्रण गुण सेट करने के लिए प्रिंट गुण विंडो के अलावा)।

2

यह सुनिश्चित नहीं है कि यह काम करता है, लेकिन आप अदृश्य iframe, पृष्ठ 2.aspx लोड करने और फिर इसे प्रिंट करने का प्रयास कर सकते हैं।

0

आप केवल एक सीएसएस प्रिंट स्टाइल शीट का उपयोग कर सकते हैं और पूरी तरह से जावास्क्रिप्ट का उपयोग करने से बच सकते हैं- उपयोगकर्ता को उन्हें करना है पृष्ठ को प्रिंट करना है। जैसे

<link rel="stylesheet" type="text/css" media="print" href="print.css" /> 
संबंधित मुद्दे