2017-04-13 1 views
8

Ich muss doSomethingFunc ausführen, wenn afterPrint passiert. Mein Code funktioniert in allen Browsern mit Ausnahme der aktuellen Safari-Versionen (Safari 10.1 auf OSX und Safari Browser ab iOS 10.3). Es scheint, dass die Ereignislistener (zumindest für den Druck) für diese zwei Browser nicht aufgerufen werden.Safari window.matchMedia-Handler nicht aufgerufen

Der obige Code funktioniert perfekt mit OSX Safari 9.1.2 und Safari von iOS 10.2. Aber nicht mit den aktuellen Versionen.

Hat jemand etwas Ähnliches bemerkt? Oder muss ich meinen Code für die aktuellen Safari-Versionen verbessern?

Meine Vermutung ist, dass dies ein Safari-Bug ist, da es eine entsprechende Notiz im Safari 10.1 changelog Kapitel Accessability gibt.

+0

Ja, ich habe die gleiche Sache - Stellt sich heraus (in meinem Fall), dass es den Handler gerade gut feuert, wenn der Druck innerhalb 1 Seite ist. Wenn der Ausdruck mehr als eine Seite enthält, wird er vollständig ignoriert. Ich habe jedoch noch keine Fehlerberichte gefunden. – Rolchau

+0

Ja, ich denke, diese Funktion wird nicht oft verwendet. Ich würde mich sehr freuen, wenn Sie einen Bugreport auf bugreport.apple.com geschrieben hätten. Ich tat das gleiche. Leider ist Apple mit seinen Fehlern sehr intransparent, so dass wir nicht wissen, ob Apple es schon bemerkt hat. – m4lt3

Antwort

-1

Wollen Sie nicht nennen

 setImmediate(doSomethingFunc); 

wenn

mql.matches 

wahr ist? Warum zum '!' dann?

+0

Wenn du '! Mql.matches' sagst, machst du Sachen während des afterPrint-Events und wenn du' mql.matches' sagst, machst du Sachen während des beforPrint-Events. – m4lt3

+0

nur gefragt. Ihre ursprüngliche Frage besagt nicht, dass Sie das afterPrint-Event wünschen. Danke für die Abstimmung und jetzt lerne ich mehr darüber, wie SO funktioniert. – oopoopoop