Ho un'app html5 mobile in cui tutto esiste su una singola pagina e utilizzo history.back/popstate/etc per modificare il contenuto della pagina (tramite jQuery Mobile). Sto utilizzando Google Analytics per monitorare vari eventi, e in una sola pagina ho monitorare se le uscite utente tramite un pulsante particolare:Google Analytics interferisce con history.back() nel browser Android?
$('#my-back-button').bind('tap', function() {
_gaq.push(['_trackEvent', 'mycategory', 'myaction']);
history.back();
return false;
});
In Android 2.2 del browser history.back() viene chiamato, ma non viene generato onpopstate e la pagina non è cambiata. Se inserisco window.onpopstate = function() { alert("!"); };
appena prima di history.back(), non vedo alcun avviso.
Se inverto le due righe (history.back() prima, quindi _gaq.push), sembra funzionare, ma non posso fare affidamento su questo tipo di ordinamento nel mio codice.
Nessuna eccezione viene lanciata. Funziona bene su iOS e sul desktop Chrome.
Qualche idea sul perché history.back() non funzioni dopo una chiamata di google analytics?
Ho lo stesso identico problema. Non credo che tu abbia trovato una soluzione o una soluzione alternativa dal primo post di questo mese fa, vero? – Trott
Non ho trovato un rimedio spiacente. Alla fine abbiamo semplicemente smesso di utilizzare google analytics e evitiamo di inserire il codice vicino a history.back(). – DurhamG
Non riesco a ricordare specificamente di avere lo stesso problema, ma guardando attraverso il JavaScript per un'app HTML5 che ho creato (anno e mezzo fa ora), delegare le chiamate a Google Analytics attraverso una funzione che ho appena chiamato alla fine di altre funzioni/chiamate che ne hanno bisogno. – cchana