Вызов пикселя Facebook fbq при нажатии кнопки

Я пытаюсь запустить функцию fbq в своем пикселе Facebook при нажатии определенной кнопки. С приведенным ниже кодом моя консоль сообщает мне, что «a равно null». Как я могу это исправить?

P.S. Я знаю, что мой код ссылки запутан. Это необходимо для стиля моих кнопок.

<!-- Facebook Pixel Code -->
<script>
!function(f,b,e,v,n,t,s)
{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};
if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];
s.parentNode.insertBefore(t,s)}(window,document,'script',
'https://connect.facebook.net/en_US/fbevents.js');
 fbq('init', '<pixel_id>'); 
fbq('track', 'PageView');
  
</script>
<noscript>
 <img height="1" width="1" 
src="https://www.facebook.com/tr?id=<pixel_id>&ev=PageView
&noscript=1"/>
</noscript>
<!-- End Facebook Pixel Code -->


<!-- This code is in the footer -->

<script>
  
  
  var a = document.getElementById('call-fbq');
  a.addEventListener(
    'click', 
    function() { 
      fbq('track', 'AddToCart');          
    },
    false
  );
  
    
  
</script>
<div class="button-wrapper-2-head"><a href="#row--89322" id="call-fbq">
		<div class="button-wrapper-head">
			<div class="button-head">
		Button
		</div>
		</div>
	</a></div>


person Evan Gladstone    schedule 06.05.2020    source источник


Ответы (1)


Кажется, ваш javascript запускается слишком рано. Чтобы убедиться, что все элементы вашей разметки загружены, попробуйте запустить скрипт в событии загрузки окна:

window.addEventListener('load', function() {

      // Your stuff here
      var a = document.getElementById('call-fbq');
      a.addEventListener(
        'click',
        function() {
          fbq('track', 'AddToCart');
        },
        false
      );

});

person davidgiesemann    schedule 06.05.2020