Mam aplikację mobilną html5, w której wszystko istnieje na jednej stronie i używam history.back/popstate/etc, aby zmienić zawartość strony (przez jQuery Mobile). Używam Google Analytics do śledzenia różnych zdarzeń, a na jednej stronie śledzić jeśli wychodzi użytkownika za pośrednictwem konkretnego przycisku:Google Analytics zakłóca działanie history.back() w przeglądarce Androida?
$('#my-back-button').bind('tap', function() {
_gaq.push(['_trackEvent', 'mycategory', 'myaction']);
history.back();
return false;
});
W Android 2.2 przeglądarki history.back() jest wywoływana ale onpopstate nie jest zwolniony a strona nie jest zmieniona. Jeśli wstawię window.onpopstate = function() { alert("!"); };
tuż przed history.back(), nie widzę alertu.
Jeśli odwrócę dwie linie (history.back() najpierw, to _gaq.push), wydaje się działać, ale nie mogę polegać na tym rodzaju porządkowania w całym kodzie.
Nie są zgłaszane żadne wyjątki. Działa dobrze w iOS i na komputerze.
Wszelkie pomysły, dlaczego funkcja history.back() nie działa po wywołaniu google analytics?
Mam dokładnie ten sam problem. Nie przypuszczam, że wymyśliłeś rozwiązanie lub obejście problemu od czasu pierwszego ogłoszenia w tym miesiącu, prawda? – Trott
Nie znalazłem obejścia, przepraszam. W końcu przestaliśmy używać Google Analytics i unikamy umieszczania kodu w pobliżu history.back(). – DurhamG
Nie mogę specjalnie pamiętać o tym samym problemie, ale przeglądając JavaScript dla aplikacji HTML5, którą zbudowałem (półtora roku temu), deleguję połączenia do Google Analytics za pośrednictwem funkcji, którą właśnie nazywam na końcu innych funkcji/wywołania, które tego potrzebują. – cchana