2015-07-01 24 views
10

Die Druckmethode funktioniert nicht auf Fenster, wenn Sie einen Onclick-Link Safari verwenden. Was ist die Alternative, um eine Webseite drucken zu lassen, in Safari per Onclick-Code, der auf einer Schaltfläche platziert ist? Ein anderes seltsames Verhalten, das auftritt, ist, dass, wenn ich versuche, das Fenster zu schließen, der Druckdialog angezeigt wird, der für den Browser nativ ist.window.print(); funktioniert nicht in Safari

+0

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

+0

Es ist nicht die Druckmethode, es ist die Klick-Funktion, die nicht in Safari funktioniert – ODelibalta

+0

diese Lösung funktioniert nicht mehr – fauverism

Antwort

0

Haben Sie kein Problem mit window.print() mit Safari. Leider konnte ich nicht versuchen, auf Windows-Betriebssystem, sondern folge Code funktioniert für mich mit 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

ich ein ähnliches Problem mit dem Safari-Browser (und keinem anderen) gegenüber. In meinem Fall zeigte das Abbrechen aller derzeit laufenden API-Aufrufe sofort den nativen Druckdialog an.

Ich vermute der Grund, warum Ihr Dialog erschien, wenn Sie versuchen, die Registerkarte/Seite zu schließen, ist, dass alle Netzwerkanforderungen dann abgebrochen werden.

Hier ist ein Beispiel dafür, wie ein Pool von Ajax-Anfragen erstellen (bei Verwendung von jQuery): Stop all active ajax requests in jQuery

Auch, um es konsequent funktioniert, ich hatte die $.xhrPool.abortAll Funktion in einem kurzen Timeout (100 ms) wickeln .

Mein Klick-Handler-Funktion (vereinfacht) sieht wie folgt aus:

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