所以经过一个巨大的头痛,我让我的网站通过ajax加载其页面。原因是客户希望它像旧的Flash网站一样流动..呃。
无论如何,一切都很花花公子,但后来我添加了谷歌分析跟踪器,它不再加载了!
以下是我如何做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时工作。
因此,为了让谷歌分析能够处理ajax页面加载,我想我可以简单地将谷歌跟踪代码粘贴在加载的区域内,当它是ajax请求时...
那不行!目前,唯一一个包含google anayltics跟踪代码的页面是平面图页面,因此您可以看到正在发生的事情。任何指针都将非常感谢!
使用以下内容跟踪谷歌跟踪代码:
<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>
// 更新 //
我相信应该这样做,谢谢Pekka!
$.ajax({
type: "POST",
url: page,
success: function(msg){
$("#wrapper").append(msg);
$("#wrapper").fadeIn();
pageTracker._trackPageview(page);
}
答案 0 :(得分:6)
您可以使用_trackPageview
功能。请参阅Google Analytics manual:
如何跟踪AJAX应用?
使用典型的HTML页面,您可以使用URL来区分多个综合浏览量。但是在AJAX应用程序中,对服务器的请求是在不更改页面URL的情况下进行的,这使得难以跟踪。
但是,通过调用_trackPageview函数,您可以为任何AJAX事件分配页面文件名。通常,在返回数据并对页面进行所有更新之后,这将作为onreadystatechange函数的一部分完成。