2015-07-01 50 views
10

Metoda drukowania nie działa w oknie podczas korzystania z linku onclick Safari. Jaka jest alternatywa do drukowania strony internetowej na safari za pomocą kodu onclick umieszczonego na przycisku? Innym dziwnym zachowaniem, które występuje, jest to, że gdy próbuję zamknąć okno, pojawia się okno dialogowe drukowania natywne dla przeglądarki.window.print(); nie działa w Safari

+0

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

+0

To nie jest metoda drukowania, funkcja kliknięcia, która nie działa w safari – ODelibalta

+0

, że rozwiązanie już nie działa – fauverism

Odpowiedz

0

Nie ma problemu z window.print() z Safari. Niestety nie mogłem spróbować w systemie operacyjnym Windows, ale śledzić kod działa dla mnie z 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

byłem stoi podobny problem z przeglądarką Safari (a nie jakiekolwiek inne). W moim przypadku, przerywanie wszystkich wywołań interfejsu API, które są w toku, natychmiast wyświetliło okno dialogowe drukowania natywnego.

Zgaduję, że powodem, dla którego okno dialogowe pojawiło się podczas próby zamknięcia karty/strony, jest anulowanie wszystkich żądań sieciowych.

Oto przykład jak stworzyć pulę żądań AJAX (przy użyciu jQuery): Stop all active ajax requests in jQuery

Ponadto, aby to działało konsekwentnie, musiałem zawijać funkcję $.xhrPool.abortAll w krótkim limitu czasu (100ms) .

Moja funkcja click obsługi (uproszczony) wygląda mniej więcej tak:

function myFunction() { 
    window.print(); 
    window.setTimeout(function() { 
     $.xhrPool.abortAll() 
    }, 100); 
} 
Powiązane problemy