Tôi có một ứng dụng di động html5 nơi mọi thứ tồn tại trên một trang và tôi sử dụng history.back/popstate/etc để thay đổi nội dung của trang (thông qua jQuery Mobile). Tôi đang sử dụng Google Analytics để theo dõi các sự kiện khác nhau, và trên một trang tôi theo dõi nếu các lối ra người dùng thông qua một nút cụ thể:Google Analytics can thiệp vào history.back() trong trình duyệt android?
$('#my-back-button').bind('tap', function() {
_gaq.push(['_trackEvent', 'mycategory', 'myaction']);
history.back();
return false;
});
Trong android 2.2 history.back trình duyệt() được gọi nhưng onpopstate không bị sa thải và trang không bị thay đổi. Nếu tôi đặt window.onpopstate = function() { alert("!"); };
ngay trước history.back(), tôi sẽ không thấy cảnh báo.
Nếu tôi đảo ngược hai dòng (history.back() trước, sau đó _gaq.push), có vẻ như nó hoạt động, nhưng tôi không thể dựa vào loại thứ tự này trong suốt mã của tôi.
Không có trường hợp ngoại lệ nào bị ném. Nó hoạt động tốt trong iOS và Chrome trên máy tính để bàn.
Bất kỳ ý tưởng nào tại sao history.back() không hoạt động sau cuộc gọi Google Analytics?
Tôi gặp vấn đề tương tự. Tôi không cho rằng bạn đã đưa ra giải pháp hoặc giải pháp thay thế kể từ lần đăng đầu tiên vào tháng này, phải không? – Trott
Tôi không tìm được cách giải quyết nào. Cuối cùng, chúng tôi đã ngừng sử dụng phân tích google và chúng tôi tránh đặt mã gần history.back(). – DurhamG
Tôi không thể nhớ chính xác vấn đề tương tự, nhưng xem xét JavaScript cho ứng dụng HTML5 tôi đã tạo (một năm rưỡi trước), tôi ủy quyền cuộc gọi đến Google Analytics thông qua chức năng mà tôi vừa gọi ở cuối các chức năng khác/các cuộc gọi cần nó. – cchana