我开发了一个单页网站,通过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)是在单个父页面上异步加载的。
答案 0 :(得分:0)
这种情况发生了,因为facebook只初始化一次,只有当它自己启动时,它才会显示你的FB Like Button。
因此,如果您使用AJAX导航到另一个站点(顺便说一句,这对seo来说有点坏),Facebook仍然已初始化,并且不知道再次渲染您的FB Like按钮。所以只有重新加载才能再次初始化facebook JS,然后你的FB Like按钮出现。