FB like按钮在ajax调用中不起作用

时间:2013-11-06 00:05:05

标签: javascript jquery html ajax facebook

我开发了一个单页网站,通过ajax加载不同的页面(java-script + html)。我在页脚部分包含了FB like按钮,这对所有页面都是通用的。现在,问题是每当我从一个页面导航到另一个页面时,在刷新整个页面之前,类似按钮不会显示。例如。最初,当加载HOME页面时,FB like按钮出现在页脚中。但是当导航到ABOUT页面时,它不会显示出来。现在,当刷新ABOUT页面时,会显示like按钮。在此之后,当我导航回主页时,按钮再次消失。这是我用来在我的页面中嵌入按钮的代码:

    //This is to be included in the html page at the start
    <div id="fb-root"></div>
    <script>(function(d, s, id) {
       var js, fjs = d.getElementsByTagName(s)[0];
       if (d.getElementById(id)) return;
       js = d.createElement(s); js.id = id;
       js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";
       fjs.parentNode.insertBefore(js, fjs);
    }(document, 'script', 'facebook-jssdk'));</script>

    //Below html block is included where you want to place the FB like button
    <div class="fb-like" data-href="https://www.facebook.com/yourPage" 
         data-colorscheme="light" data-layout="standard" data-action="like" 
         data-show-faces="true" data-send="true"></div>

请注意,页面(HOME和ABOUT)是在单个父页面上异步加载的。

1 个答案:

答案 0 :(得分:0)

这种情况发生了,因为facebook只初始化一次,只有当它自己启动时,它才会显示你的FB Like Button。

因此,如果您使用AJAX导航到另一个站点(顺便说一句,这对seo来说有点坏),Facebook仍然已初始化,并且不知道再次渲染您的FB Like按钮。所以只有重新加载才能再次初始化facebook JS,然后你的FB Like按钮出现。