2010-07-21 17 views
7

मेरे पास एक पृष्ठ है जो window.print() को कॉल करता है; पृष्ठ के निचले भाग में। मेरे पास window.print() के आसपास कोड तक पहुंचने का कोई तरीका नहीं है; यह सर्वर द्वारा उत्पन्न किया गया है और मैं इसे छू नहीं सकता। असल में आईई की वजह से प्रिंट संवाद आने से पहले जावास्क्रिप्ट को थोड़ा सा निष्पादित करने की आवश्यकता है लेकिन पृष्ठ लोड होने के बाद। मैं ऐसा नहीं कर सकता क्योंकि जैसे ही यह window.print() पर जाता है; प्रिंट संवाद आता है। मुझे अभी भी प्रिंट करने की आवश्यकता है लेकिन पहले मुझे अपना फ़ंक्शन() चलाने की आवश्यकता है, फिर मैं window.print() कर सकता हूं;पृष्ठ से पहले फ़ंक्शन निष्पादित करना window.print()

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

उत्तर

16

तुम इतनी है कि यह ओवरराइड करने के लिए सक्षम होना चाहिए ...

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

मैं शपथ ले सकता था कि मैंने कोशिश की। हालांकि यह पूरी तरह से काम करता है! धन्यवाद! – joe

+0

एए, मुझे पंच के लिए हराया! +1। –

+0

@ जो कोई समस्या नहीं, स्टैक ओवरफ़्लो में आपका स्वागत है! इसे उत्तर के रूप में स्वीकार करने के लिए, आप वोट डाउन-तीर के नीचे चेकमार्क पर क्लिक कर सकते हैं। –

8

आप केवल IE के लिए समर्थन की जरूरत है, onbeforeprint घटना देख "आईई की वजह से मूल रूप से मैं करने के लिए ... की जरूरत है"।

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

लाभ वह कोड यहां ब्राउज़रों कि onbeforeprint है, जो काफी आईई छोड़कर हर ब्राउज़र है का समर्थन नहीं करते में नहीं चलेंगे है।

+0

वाह thats एक नया एक!! – joe

0

एक आप जैसे करने के लिए पहुँच नहीं है पहले एक और <script> टैग लगाने का प्रयास करें:

<html><head></head><body></body><script>alert('Hello There !');</script><script>window.print();</script></html> 
संबंधित मुद्दे