javascript - 将 Facebook Pixel 事件添加到 Squarespace 按钮单击
问题描述
我正在尝试将 Facebook 像素事件——“ViewContent”——添加到我的 Squarespace 网站。我有一页有一个按钮,我想在按钮点击时触发事件。感觉应该很简单,但是我在当前设置下一直在 Facebook Pixel Helper 中遇到错误。
我正在参考这篇文章:将 FB 像素事件代码添加到按钮中 - Squarespace
正如答案中所建议的那样,我在此页面的标题中使用了每页代码注入:https ://www.wearpapercrane.com/survey
这就是我所拥有的——
<script>
(function() {
var btns = document.getElementsByClassName("sqs-block-button-element");
var i, I;
for (i=0, I=btns.length; i<I; i++) {
btns[i].addEventListener("click", function() {
fbq("track", "ViewContent");
});
}
})();
</script>
但是,当我使用 Facebook Pixel Helper 进行验证时,我在另一端得到的结果是——
(顺便说一下,这是在单击之后...按钮在单独的选项卡中打开链接,所以这是在单击后返回页面并查看 Pixel Helper)。
有什么我遗漏的东西导致了这个错误吗?
我已经安装了像素,并且我在另一个页面上有一个“引导”事件正常工作(使用 Squarespace 的 Form Embed 功能),所以我很确定这是这个特定代码注入的问题。
会喜欢任何和所有的建议。谢谢!!
解决方案
该事件没有触发,因为您引用的答案(我写的)没有考虑这样一个事实,即在通过标头注入(站点级或页面级)注入代码时,必须等待 DOM 之前加载将事件附加到元素。
您引用的答案已更新,特别是以下部分:
<script>
window.Squarespace.onInitialize(Y, function() {
var btns = document.getElementsByClassName("sqs-block-button-element");
var i;
for (i=btns.length-1; i>=0; i--) {
btns[i].addEventListener("click", function() {
fbq("track", "AddToCart");
});
}
});
</script>
推荐阅读
- python - 如何在 django 2.2 中从数据库中查询数据
- bash - 2013:“在‘握手:读取初始通信数据包’时丢失与 MySQL 服务器的连接,系统错误:115”尝试连接时
- django - 在 Django 中使用 createsuperuser 命令时如何添加自定义错误消息?
- git - 从发布分支自动合并到开发中(开发需要 PR)
- javascript - 将对象数组中键的值与 AngularJS 中的变量进行比较
- c++ - 有没有一种很好的方法来实现具有默认失败情况的条件类型?
- alfresco - 如何使用脚本任务在 Alfresco 流程服务中获取工作流 taskId
- asp.net - 如何解决“提供者必须实现类'System.Web.SessionState.SessionStateStoreProviderBase'错误asp.net
- javascript - 我的块引用没有运行。我也链接了引导 css 和 js 文件,但它似乎不起作用
- javascript - 将键值插入AngularJS中的数组时出现“.push不是函数”错误