Tôi có một trang web HTML cơ bản (với một số javascript) sử dụng một thẻ neo đơn giản để tải về một tập tin như vậy:OSX Safari Khung tải gián đoạn
<a href="../resources/mexml/MexmlSamples-1.0.zip">Mexml Samples 1.0</a>
Để theo dõi số lượng tải, tôi có một onclick
handler đi qua một sự kiện vào Google Analytics như vậy:
$('#mybutton').click(function(e){ga('send','event','Download','MexmlSample','MexmlSample-1.0');});
này hoạt động như mong đợi khi tải các tập tin sử dụng Chrome trên OS X, và IE trên Windows 7. tải tập tin và tôi thấy sự kiện trong GA của tôi tài khoản.
Khi tôi thử nghiệm trong Safari 8 trên Yosemite, tệp tải xuống, nhưng GA hiếm khi thấy sự kiện. Và dĩ nhiên là tôi gặp phải sự sợ hãi Failed to load resource: Frame load interrupted
trong bảng điều khiển lỗi Safari.
Tôi cho rằng đôi khi tôi nhận được sự kiện GA vì điều kiện cuộc đua giữa khi Safari ngắt hành động và khi mã GA kích hoạt.
Vậy có thể làm gì để sửa lỗi này trong Safari để tôi luôn nhận được sự kiện GA không?
Lưu ý rằng câu hỏi của tôi có thể có nguyên nhân gốc rễ tương tự như câu hỏi chưa được trả lời này: Frame load interrupted when downloading excel files
Cập nhật ngày 06 tháng 6
Tôi bây giờ hoàn toàn bối rối. Tôi chỉ nhận thấy rằng nếu tôi mở một trang trình duyệt mới cho trang web của tôi (trong Safari), và nhấp vào tải xuống, sau đó nó được ghi lại bởi GA. Tuy nhiên, các nhấp chuột tiếp theo vẫn tải xuống tệp nhưng không được GA ghi lại.
Nếu tôi đóng cửa sổ đó và mở cửa sổ mới, thì lần tải xuống đầu tiên sẽ được GA ghi lại.
Ngược lại, khi sử dụng Chrome, mọi lượt tải xuống đều được GA ghi lại.
Tôi hiện đang nghĩ rằng tôi có thể đang xem xét vấn đề sai. Hành vi mà tôi thấy đang cho tôi biết rằng Safari đang duy trì trạng thái trong JavaScript cho phép lệnh gọi GA đầu tiên đi qua, nhưng chặn tất cả các cuộc gọi tiếp theo.
Nhưng đây là cùng mã đang được Chrome chạy, vì vậy tôi không biết bắt đầu gỡ rối vấn đề ở đâu.
Việc chờ yêu cầu GA hoàn tất sẽ xấu cho người dùng - tôi muốn giữ tình hình hiện tại. Đối với thuộc tính HTML5 'download', nó hiện không được Safari hỗ trợ. –
Hoàn toàn đồng ý với sự xấu. Ngoài ra [ở đây] (http://stackoverflow.com/questions/2655387/safari-how-to-load-a-file-without-getting-safari-to-stop-the-current-ajax-reque) Tôi thấy thú vị nhận xét về thuộc tính target = "_ blank" cho thẻ < a >. Hy vọng điều này có thể giúp – Andrey
Thats một điểm tốt về 'target'. Tôi sẽ cố gắng sau ngày hôm nay. –