Итак, после сильной головной боли, я заставил свой сайт загружать все страницы через ajax.Причина в том, что клиент хотел, чтобы он работал точно так же, как и на его старом флеш-сайте. Да.
В любом случае, все было просто замечательно, но затем я добавил трекеры Google Analytics, и он больше не загружается!
Вот как я делаю ajax:
$("li.home a").click (function() {
ajax_load("index.php",this);
return false;
});
$("li.location a").click (function() {
ajax_load("location.php",this);
return false;
});
etc...
function ajax_load(page,element) {
// deals with making an element active in left nav
$('#mainnav').find('li.active').removeClass('active');
$(element).parent().addClass('active');
// empty the wrapper, then add new content with a fade effect
$("#wrapper").empty();
$("#wrapper").css({'display' : 'none'})
$.ajax({
type: "POST",
url: page,
success: function(msg){
$("#wrapper").append(msg);
$("#wrapper").fadeIn();
}
});
// set the page hash, so we can add these pages to favorites if wanted
var strLen = page.length;
page = page.slice(0,strLen-4);
window.location.hash = page;
}
Все отдельные страницы - это файлы php. И когда они загружаются, в начале файла проверяется, чтобы увидетьесли это запрос AJAX.Если это так ... он пропускает заголовок и навигацию только к содержимому, а затем пропускает нижний колонтитул.это позволяет ему работать, когда javascript отключен.
Итак, чтобы заставить Google Analytics работать при загрузке страниц AJAX, я подумал, что могу просто вставить код отслеживания Google в область, которая загружается, когда это AJAX.запрос ...
Ну, это не работает!На данный момент единственной страницей с кодом отслеживания Google Analytics является страница планов этажей, чтобы вы могли видеть, что происходит.Любые указатели будут с благодарностью!
вот код отслеживания Google, который я использую:
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-11737385-5");
pageTracker._trackPageview();
} catch(err) {}</script>
// ОБНОВЛЕНИЕ //
Я считаю, что это должно быть сделано, спасибо, Пекка!
$.ajax({
type: "POST",
url: page,
success: function(msg){
$("#wrapper").append(msg);
$("#wrapper").fadeIn();
pageTracker._trackPageview(page);
}