javascript - 单击按钮时调用 Facebook 像素 fbq
问题描述
当单击某个按钮时,我试图在我的 Facebook 像素中触发 fbq 功能。使用下面的代码,我的控制台告诉我“a 为空”。我怎样才能解决这个问题?
PS我知道我的链接代码很乱。这对于我设置按钮样式的方式是必要的。
<!-- 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>
解决方案
看来您的 javascript 运行得太早了。为确保您的标记的所有元素都已加载,请尝试在窗口的加载事件中运行您的脚本:
window.addEventListener('load', function() {
// Your stuff here
var a = document.getElementById('call-fbq');
a.addEventListener(
'click',
function() {
fbq('track', 'AddToCart');
},
false
);
});
推荐阅读
- .net - MapsterMapper 从接口映射到内部设置器属性
- map-force - 如何将值映射表中的值映射到异常?
- python - 数独算法生成重复值
- charts - 如何在 Google 条形图中分配条形颜色
- angular - 如何在Angular Kendo UI Treelist中从父行展开所有子行
- maven - Mac OS 上 Maven 中的 Java 版本管理
- javascript - 如果选择了超过 5 个单选框,则显示 javascript 消息
- button - MSO 按钮背景颜色
- javascript - 我如何能够将数组存储在我的 Discord Bot 的文本文件中?
- header - 由于固定的标题,CSS 正文边框不会一直到页面顶部