我在我的网站上使用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()方法。
有没有更好的方法来解决这个问题?
答案 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>");
};