2015-07-01 25 views
10

Il metodo di stampa non funziona sulla finestra quando si utilizza un collegamento onclick Safari. Qual è l'alternativa per stampare una pagina web, in safari tramite codice onclick posizionato su un pulsante? Un altro strano comportamento che si sta verificando è che quando provo a chiudere la finestra, appare la finestra di dialogo di stampa nativa per il browser.window.print(); non funziona in Safari

+0

Duplicate: http://stackoverflow.com/questions/23626998/safari-print-issue-with-javascript-window-print – HaukurHaf

+0

Non è il metodo di stampa, è la funzione su clic che non funziona in safari – ODelibalta

+0

che la soluzione non funziona più – fauverism

risposta

0

Nessun problema con window.print() con Safari. Spiacente non ho potuto provare su sistemi operativi Windows e seguire codice funziona per me con MacOS:

<!DOCTYPE html> 
<html> 
<body> 
    <button onclick="myFunction()">Click me</button> 
    <a href="#" onclick="myFunction()">Click link</a> 

    <script> 
    function myFunction() { 
     window.print(); 
    } 
    </script> 

</body> 
</html> 
0

stavo affrontando un problema simile con il browser Safari (e non tutti gli altri). Nel mio caso, l'interruzione immediata di tutte le chiamate API attualmente in corso mostrava la finestra di dialogo di stampa nativa.

Sto indovinando il motivo per cui la finestra di dialogo visualizzata quando si tenta di chiudere la scheda/pagina è che tutte le richieste di rete vengono annullate quindi.

Ecco un esempio di come creare un pool di richieste Ajax (quando si utilizza jQuery): Stop all active ajax requests in jQuery

Inoltre, per farlo funzionare in modo coerente, ho dovuto avvolgere la funzione $.xhrPool.abortAll in un breve timeout (100 ms) .

La mia funzione click handler (semplificato) sembra qualcosa di simile:

function myFunction() { 
    window.print(); 
    window.setTimeout(function() { 
     $.xhrPool.abortAll() 
    }, 100); 
} 
Problemi correlati