动态页面上的Facebook页面插件 [英] Facebook page plugin on dynamic page

查看:85
本文介绍了动态页面上的Facebook页面插件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何在一个页面应用程序中重新加载facebook页面元素? https://developers.facebook.com/docs/plugins/page-plugin

How can I reload facebook page element, in one page application? https://developers.facebook.com/docs/plugins/page-plugin

如果我从DOM中删除了Facebook嵌入的div并再次添加了该div,facebook插件将不会自动重新初始化.我猜想我必须做一些额外的JavaScript工作,才能告诉插件重新初始化.

If I delete facebook embedded div from DOM and add this div again, facebook plugin won't automatically reinit. I'm guessing I have to do extra javascript work, to tell plugin to reinit.

我正在使用加载Facebook插件的代码.

Im using code that loads facebook plugin.

<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_GB/sdk.js#xfbml=1&version=v2.4&appId=xxx";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>

然后在首页动态标签上,我正在使用代码将Facebook页面嵌入到我的一页应用程序中:

Then on home dynamic tab I'm using code to embed facebook page on my one-page app:

<div class="fb-page" data-href="https://www.facebook.com/facebook" data-small-header="false" data-adapt-container-width="true" data-hide-cover="false" data-show-facepile="true" data-show-posts="true"><div class="fb-xfbml-parse-ignore"><blockquote cite="https://www.facebook.com/facebook"><a href="https://www.facebook.com/facebook">Facebook</a></blockquote></div></div>

第一次加载就可以了,我可以看到嵌入的Facebook页面.但是,如果我要更改选项卡,然后再次回到首页,则无法执行Facebook代码,也无法再看到Facebook页面.

It loads ok at the first time, I can see embeded facebook page. But if I will change tab, and change back to home again, the facebook code doesn't execute and I can't see facebook page anymore.

这时如何手动重新加载Facebook嵌入式页面?

At this point how can manually reload Facebook embedded page ?

推荐答案

调用以下JS代码

FB.XFBML.parse();

在加载新内容后使Facebook SDK重新加载

after a new content loads to make the Facebook SDK reload each

<div class="fb-page" data-href="https://www.facebook.com/facebook" data-small-header="false" data-adapt-container-width="true" data-hide-cover="false" data-show-facepile="true" data-show-posts="true"><div class="fb-xfbml-parse-ignore"><blockquote cite="https://www.facebook.com/facebook"><a href="https://www.facebook.com/facebook">Facebook</a></blockquote></div></div>

页面上的

标记.如果您只需要在某个DOM元素中重新加载Facebook插件,请将其作为参数传递给函数:

tag on the page. If you need to reload a Facebook plugins only in a certain DOM element, pass it as argument to the function:

FB.XFBML.parse(document.getElementByID('certain-plugins-holder'));

完整参考: https://developers.facebook.com/docs/reference/javascript/FB.XFBML.parse

这篇关于动态页面上的Facebook页面插件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆