在jQuery函数中插入Facebook重定向脚本

时间:2015-09-21 18:13:27

标签: javascript jquery facebook if-statement

我在我的网站上使用Facebook跟踪像素。 Facebook提供的代码片段如下所示:

<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','//connect.facebook.net/en_US/fbevents.js');

fbq('init', '289122114623663');
fbq('track', 'PageView');
</script>
<noscript><img height="1" width="1" style="display:none"
src="https://www.facebook.com/tr?id=289122114623663&ev=PageView&noscript=1"
/></noscript>

通常情况下,我将此代码段放在</body>标记上方并继续我的快乐方式,但在这种情况下,如果页面上显示某个div,我就不需要运行此脚本。

我写了一个jQuery if语句:

if (!$('.partner-bar').is(':visible')) {
    $("#facebook-pixel").html(""); 
};

我打算将整个Facebook片段放在.html()方法中,以为在满足这些条件时会在名为#facebook-pixel的div中输出HTML。但是jQuery似乎不喜欢使用.html()方法。

有没有更好的方法来解决这个问题?

1 个答案:

答案 0 :(得分:0)

所以,看起来这个问题实际上是一个空白问题。我复制粘贴到.html()方法的代码中包含了断行代码的换行符...当我删除所有换行符和额外的空格时,它按预期工作。

这是我的最终代码:

if (!$('.partner-bar').is(':visible')) {
      $("#facebook-pixel").html("<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','//connect.facebook.net/en_US/fbevents.js');fbq('init', '289122114623663');fbq('track', 'PageView');</script><noscript><img height='1' width='1' style='display:none'src='https://www.facebook.com/tr?id=289122114623663&ev=PageView&noscript=1'/></noscript>"); 
    };