我正在更改网站的很大一部分以使用jQuery Address的深层链接AJAX功能。我正在使用URI之类的mysite.com/#!/page1/subpage/。
mysite.com/#!/page1/subpage/
我已经阅读了很多有关使用此_gaq.push()功能跟踪流量的信息,但是我想知道是否有可能以更传统的方式进行此操作…
_gaq.push()
每个AJAX请求都调用一个PHP函数,该函数生成一个页面并通过<HTML>包装返回它,这使我可以轻松定义自定义页面标题等。
<HTML>
如果我将分析代码放在该页面上,jQuery会调用该页面来触发它来跟踪访问吗?
好了,您可以使用jQuery的AJAX事件来全局侦听AJAX请求,然后将索引推入_gaq数组(这似乎是最可维护的方法):
_gaq
$(document).on('ajaxComplete', function (event, request, settings) { _gaq.push(['_trackPageview', settings.url]); });
请注意,这.on()是jQuery 1.7中的新功能,与.bind()本例相同。
.on()
.bind()
另请注意,我尚未测试为全局AJAX事件传递的参数的内容。
更新
您还可以$.globalEval()用来解析AJAX响应正文中加载的脚本:http : //api.jquery.com/jquery.globalEval/
$.globalEval()
success: function(data) { var dom = $(data); dom.filter('script').each(function(){ $.globalEval(this.text || this.textContent || this.innerHTML || ''); }); $('#mydiv').html(dom.find('#something').html()); }