我想在我的JavaScript代码中检测到Facebook像素的负载已经完成.这可能吗?
这里参考Facebook Pixel Tracking代码:
将其分解,似乎fbq('init', ...)
会导致script
使用async
属性集添加标记并将其src
设置为//connect.facebook.net/en_US/fbevents.js
.
随后调用以fbq('track', ...)
某种方式GET
通过一次重定向导致HTTP 到图像.
如何检测所有步骤是否完整,尤其是最终图像加载完成?
我为此刺了一下。给定一个名为的回调函数myCallback
和一个名为的私有ID myId
,请使用以下代码:
(function wait() { // check for the generic script // easiest check to prevent race condition if (fbq.version > '2.0') { // now check for the custom script // `fbq.on` is now ready (`fbq.once` would be better but has a bug) fbq.on('configLoaded', function (name) { if (name === myId) { myCallback(); } }); } else { setTimeout(wait, 10); } })();
myCallback
一切准备就绪后将被调用。截至fbq.version="2.7.17";
参考https://github.com/poteto/ember-metrics/pull/151