我围绕模块构建了我的CMS(例如:幻灯片,页脚,导航......),我想通过Google Analytics事件跟踪这些模块的使用情况。
我所做的是以下内容: 在每个PHP模块中,我添加了一个跟踪给定模块位置的JS函数,当模块在视口中可见时,会触发Google Analytics部件。
以下是代码:
init = 0;
$(window).scroll(function()
{
screenheight = $(window).height();
scrollposition = $(window).scrollTop()+screenheight;
divheight = $("[containername]").height();
divposition = $("[containername]").position().top;
if ((scrollposition>divposition) && (init==0))
{
ga('send', { 'hitType': 'pageview', 'page': 'blablabla', 'title': 'more blablabla' });
init = 1;
}
});
一切正常但是......我有很多模块,把它放在每个模块中可能不是最聪明的事情。所以现在我正在寻找更通用的解决方案。
每个模块都封装在一个具有唯一ID的div中。每个唯一ID以-container结尾,例如:navigation-container,slideshow-container,...
我想要做的是检测其中一个-container div是否出现在视口中(其中任何一个),如果是这种情况,则触发相同的JS。我尝试过使用.match和正则表达式,但它看起来不像是能够检测到各个div。
我还想以同样的方式跟踪这些div中的点击次数。今天我为每个模块编写了单独的JS。
有什么建议吗?
******更新********** 我使用过滤器+ regexp解决了点击跟踪部分:
$('div').filter(function() { return this.id.match(/container/); }).click(function()
{
// do something
});
这使我可以对要跟踪的div中的所有点击进行一次通用点击跟踪。
现在我仍然在寻找另一个问题的解决方案(在视口中检测)
由于 劳伦