2010-07-21 14 views
7

Ho una pagina che chiama window.print(); Nella parte inferiore della pagina. Non ho modo di accedere al codice attorno a window.print(); È generato dal server e non posso toccarlo. Fondamentalmente a causa di IE ho bisogno di eseguire un po 'di javascript prima che venga visualizzata la finestra di dialogo di stampa ma dopo che la pagina è stata caricata. Non posso farlo perché non appena arriva a window.print(); viene visualizzata la finestra di dialogo di stampa. Devo ancora stampare, ma prima devo eseguire myFunction(), quindi posso window.print();Esecuzione della funzione prima che la pagina arrivi a window.print()

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

risposta

16

Dovreste essere in grado di ignorare che in questo modo ...

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

Avrei potuto giurare di averlo provato. Funziona perfettamente però! Grazie! – joe

+0

Awww, picchiami al punch! +1. –

+0

@joe Nessun problema, benvenuto su Stack Overflow! Per "accettare" questa come risposta, è possibile fare clic sul segno di spunta sotto la freccia rivolta verso il basso. –

8

"Fondamentalmente perché di IE ho bisogno di ..."

Se avete solo bisogno di supporto per IE, vedere l'evento onbeforeprint.

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

Il vantaggio è che il codice non verrà eseguito nei browser che non supportano OnBeforePrint, che è praticamente tutti i browser tranne IE.

+0

Wow thats un nuovo uno!! – joe

0

Prova a mettere un altro <script> tag prima quello che non si ha accesso a esempio:

<html><head></head><body></body><script>alert('Hello There !');</script><script>window.print();</script></html> 
Problemi correlati