0

我正在使用这个名为barba.js的库并尝试实现 google 分析和 facebook 分析。
我按照官方文档中的说明实现了它,但是由于 barba.js 不会一次又一次地重新加载页眉和页脚,而只是重新加载barba-containerdiv,这导致谷歌分析只记录用户登陆的第一页上的综合浏览量,而不是其他页面。通过在视图

的挂钩中调用它并解决了这个问题,这个问题得到了解决。 但我现在面临的问题是下面提到的 Facebook 分析。onEnterCompleted

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 分析,请分享您的示例。
非常感谢 !

编辑:看到这个链接后,我用 barba.js 以这种方式实现了谷歌分析。

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这解决了谷歌分析的问题

4

0 回答 0