Javascript код для запуска пользовательского события Facebook Pixel на прокрутке% - PullRequest
0 голосов
/ 08 апреля 2019

У меня есть строка Javascript, которая запускает пользовательское событие пикселя Facebook для определения того, как далеко пользователь прокручивает веб-страницу.Один из кодов работает для 50% прокрутки и корректно запускает пиксель.

Я попытался изменить код так, чтобы прокручивать пиксель Facebook с прокруткой 25%, 50%, 75% и 100%, и не могу его получитьстрелять в любые события.Я поместил ниже и рабочий код, и нерабочий измененный код.

<script type = "text/javascript" >
    /*
    This code works for firing a Facebook Custom Event "SCROLLED 50 PERCENT" when someone scrolls 50% of a web page
    */

    function getScrollPercent() {
        var o = document.documentElement,
            r = document.body,
            e = "scrollHeight",
            t = (o.scrollTop || r.scrollTop) / ((o[e] || r[e]) - o.clientHeight) * 100;
        return Math.round(t)
    }
var scrollFired = !1,
    props = {
        pm_path: window.location.pathname
    };
window.addEventListener("scroll", function(o) {
    getScrollPercent() >= 50 && !scrollFired && (fbq("trackCustom", "SCROLLED 50 PERCENT", props), scrollFired = !0)
});

</script>


<script  type="text/javascript">


 /*
    This the modified code to fire multiple scroll events, but cannot get it to fire any scroll events.
    */
function getScrollPercent(){
var o=document.documentElement,
r=document.body,
e="scrollHeight",
t=(o.scrollTop||r.scrollTop)/((o[e]||r[e])-o.clientHeight)*100;
return Math.round(t);
var tracker = window.ScrollTracker();
tracker.on({
  percentages: {
    every: [25]  // Tracks 25%, 50%, 75%, and 100%
  }
}, handler);}

var scrollFired=!1,
props={pm_path:window.location.pathname};


if(getScrollPercent()>=25){
  window.addEventListener("scroll",function(o){
getScrollPercent()>=25&&!scrollFired&&(fbq("trackCustom","SCROLLED 25 PERCENT",props),scrollFired=!0)});



}
else if(getScrollPercent()>=50){
  window.addEventListener("scroll",function(o){
getScrollPercent()>=50&&!scrollFired&&(fbq("trackCustom","SCROLLED 50 PERCENT",props),scrollFired=!0)});

}
else if(getScrollPercent()>=75){
  window.addEventListener("scroll",function(o){
getScrollPercent()>=75&&!scrollFired&&(fbq("trackCustom","SCROLLED 75 PERCENT",props),scrollFired=!0)});

}
else if(getScrollPercent()>=100){
  window.addEventListener("scroll",function(o){
getScrollPercent()>=100&&!scrollFired&&(fbq("trackCustom","SCROLLED 100 PERCENT",props),scrollFired=!0)});

}


$rootScope.$on('$routeChangeSuccess', function() {

  $scrollTracker.reset();

});

</script>

Я хочу, чтобы код запускал пользовательские события Facebook для 25%, 50%, 75 и 100% глубины прокрутки.

...