我正在使用名为barba.js的库,并尝试实现google Analytics(分析)和facebook分析。
我按照官方文档中的说明实现了它,但是barba.js不会重新加载页眉和页脚一次又一次地重新加载barba-container
div,这导致google Analytics(分析)仅记录用户登陆的第一页的综合浏览量,而不记录其他网页。
通过在视图的onEnterCompleted
钩子中调用它可以解决此问题并解决。
但是我现在面临的问题是下面提到的Facebook分析。
window.fbAsyncInit = function() {
FB.init({
appId : 'xxxxxxxxxxxxx',
cookie : true,
xfbml : true,
version : 'v3.3'
});
FB.AppEvents.logPageView();
};
(function(d, s, id){
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) {return;}
js = d.createElement(s); js.id = id;
js.src = "https://connect.facebook.net/en_US/sdk.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
如果我在Barba.js视图的onEnterCompleted
挂钩中使用此代码,则会一次又一次地调用它,但是我不确定这是否是最佳做法,或者是否会按预期工作。
如果有人使用barba.js实现了Facebook分析,请分享您的示例。
非常感谢 !
编辑:看到link后,我已经用barba.js实施了Google Analytics(分析)。
function analytics() {
var path = (window.location.href).replace(window.location.origin, '').toLowerCase();
window.dataLayer = window.dataLayer || [];
function gtag() { dataLayer.push(arguments); }
gtag('js', new Date());
gtag('config', 'UA-xxxxxxxx-x', {
'page_path': path
});
console.log('view sent', path);
}
我创建了此函数,并在视图的onEnterCompleted
中调用了该函数,从而解决了Google Analytics(分析)问题