我在我的网站上使用了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()方法。
有没有更好的方法来解决这个问题呢?
发布于 2015-09-22 09:39:53
所以,看起来这个问题实际上是一个空格问题。我将复制粘贴到.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>");
};https://stackoverflow.com/questions/32701975
复制相似问题