我可以将Facebook转换像素置于BODY内(而不是HEAD内部,这是Facebook在其规格中的建议吗?
我不明白为什么不。有人试过吗?
以下是代码
的示例<script type="text/javascript">
var fb_param = {};
fb_param.pixel_id = '123456789';
fb_param.value = '10';
fb_param.currency = 'USD';
(function(){
var fpw = document.createElement('script');
fpw.async = true;
fpw.src = '//connect.facebook.net/en_US/fp.js';
var ref = document.getElementsByTagName('script')[0];
ref.parentNode.insertBefore(fpw, ref);
})();
</script>
<noscript><img height="1" width="1" alt="" style="display:none" src="https://www.facebook.com/offsite_event.php?id=1234566&value=10&currency=USD" /></noscript>
答案 0 :(得分:17)
根据这里的答案:https://www.facebook.com/help/community/question/?id=10200354561858276
您可以将其放在<BODY>
元素中,但FB建议将其保留在<BODY>
的开头或<HEAD>
,因为转换将被计算,即使页面确实如此未完全加载或用户关闭页面。
答案 1 :(得分:7)
您可以将fb像素代码放在doc中的任何位置。它会工作。的测试强>
如果你放在身体的末端,有一个缺点,如果用户关闭了浏览器,你将无法获得像素数(例如 - 页面没有完全加载)。
但如果它存在于头部,则在页面未正确加载的情况下,您将获得像素数。
答案 2 :(得分:4)
显然,是的。它适用于BODY。测试
答案 3 :(得分:1)
提供的代码将在第一次出现标记之前放置对FB脚本的引用,请参阅:
var ref = document.getElementsByTagName('script')[0];
ref.parentNode.insertBefore(fpw, ref);
您想要更改此内容的原因究竟是什么?
答案 4 :(得分:1)
我所做的是将<script>
部分代码放在HEAD
部分和<noscript>
部分末尾的BODY
部分。为什么呢?
如果启用了Javascript,并且如果您计算网页的每次点击都很重要,无论网页是否已完全加载,这仍然有效。
如果未启用Javascript,<noscript>
部分也将被执行,而不会导致dom模型布局中的干扰(在我的页面上,它为该1px图像添加了一些虚假高度,因为上帝知道什么理由),最重要的是,它将在W3C HTML验证器中验证。如果将noscript部分留在head部分中,则noscript中的img标记将导致验证错误。