OSX Safari Frame Load Interrupted

Ich besitze eine einfache HTML-Website (mit etwas Javascript), die ein einfaches Ankertag verwendet, um eine Datei wie die folgende herunterzuladen:

<a href="../resources/mexml/MexmlSamples-1.0.zip">Mexml Samples 1.0</a>

Um die Anzahl der Downloads zu verfolgen, habe ich einonclick -Handler, der ein Ereignis wie folgt an Google Analytics übergibt:

$('#mybutton').click(function(e){ga('send','event','Download','MexmlSample','MexmlSample-1.0');});

Dies funktioniert wie erwartet, wenn Sie die Datei mit Chrome unter OS X und IE unter Windows 7 herunterladen. Die Datei wird heruntergeladen und das Ereignis wird in meinem GA-Konto angezeigt.

Wenn ich es in Safari 8 auf Yosemite teste, wird die Datei doesdownload, aber GA sieht das Ereignis nur selten. Und natürlich bekomme ich das gefürchteteFailed to load resource: Frame load interrupted in der Safari-Fehlerkonsole.

Ich gehe davon aus, dass ich das GA-Ereignis manchmal aufgrund einer Rennbedingung zwischen dem Unterbrechen der Aktion durch Safari und dem Auslösen des GA-Codes erhalte.

So kann irgendetwas getan werden, um dies in Safari zu beheben, sodass ich immer die GA-Ereignisse erhalte?

Bitte beachten Sie, dass meine Frage wahrscheinlich dieselbe Ursache hat wie dieseunbeantworte frage:Frame-Ladevorgang beim Herunterladen von Excel-Dateien unterbrochen

Update 6. Juni

Ich bin jetzt gründlich verwirrt. Mir ist gerade aufgefallen, dass, wenn ich eine neue Browserseite zu meiner Site öffne (in Safari) und auf den Download klicke, diese von GA protokolliert wird. Jedoch laden nachfolgende Klicks immer noch die Datei herunter, werden aber nicht von GA protokolliert.

Wenn ich dieses Fenster schließe und ein neues öffne, wird der erste Download erneut von GA protokolliert.

Im Gegensatz dazu wird bei Verwendung von Chrome jeder Download von GA protokolliert.

Ich denke jetzt, dass ich auf das falsche Problem schauen kann. Das Verhalten, das ich sehe, sagt mir, dass Safari in JavaScript einen Status beibehält, der das Durchlaufen des ersten GA-Aufrufs ermöglicht, aber alle nachfolgenden Aufrufe blockiert.

Aber dies ist derselbe Code, der von Chrome ausgeführt wird, sodass ich nicht weiß, wo ich überhaupt mit dem Debuggen des Problems beginnen soll.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage